MySQL කැෂ් මකා දැමීමේ ක්‍රමය: Query Cache, Table Cache සහ InnoDB Buffer Pool (5.7 සහ 8.0 මාර්ගෝපදේශය)

目次

1. හැඳින්වීම

MySQL යනු ලෝකය පුරා වෙබ් සේවා සහ පද්ධතිවල විශාල ලෙස භාවිතා වන දත්ත ගබඩා පද්ධති之一 වේ. කාර්ය සාධනය වැඩිදියුණු කර සේවාදායක බර අඩු කිරීම සඳහා MySQL විවිධ කෑෂ් යන්ත්‍රණ ලබා දේ. කෙසේ වෙතත්, සංවර්ධන සහ නිෂ්පාදන පරිසරවල “කෑෂ් නිසා නවතම දත්ත පෙන්වන්නේ නැත” හෝ “පැරණි කෑෂ් වින්‍යාස වෙනස්කම් හෝ දෝෂ නිරාකරණයට බාධා කරයි” වැනි ගැටළු සාමාන්‍යය වේ.

එවැනි අවස්ථාවල MySQL කෑෂ් (මකා දැමීම හෝ යළි සකස් කිරීම) ඉතා ප්‍රයෝජනවත් වේ. උදාහරණයක් ලෙස, පරීක්ෂණ පරිසරයක නවීකරණය කළ දත්ත වහාම තහවුරු කිරීමට, ස්නැප්ෂොට් එකක් ගැනීමට පෙර කෑෂ් මකා දැමීමට, හෝ අනපේක්ෂිතව ඉතිරිවූ කෑෂ් දත්ත බලයෙන් යළි සකස් කිරීමට මෙම ක්‍රියාවලිය ප්‍රයෝජනවත් වේ.

මෙම ලිපිය “mysql cache clear” ගැන උනන්දු වන අයට අරමුන කරගෙන, සරලව තේරුම්ගත හැකි ආකාරයෙන් කෑෂ් වර්ග අනුව ලක්ෂණ සහ මකා දැමීමේ ක්‍රම විස්තර කරයි. එමෙන්ම MySQL අනුවාදය අනුව කෑෂ් විශේෂණ වෙනස්කම්, මෙහෙයුම් සැලකිලි, සාමාන්‍ය ප්‍රශ්න සහ ඒවායේ විසඳුම්ද කවරා කරයි.

කෑෂ් ක්‍රියාකාරිත්වය සහ එය මකා දැමීමේ ක්‍රම නිවැරදිව අවබෝධ කරගත් පසු, ඔබ MySQL වැඩි ස්ථායිත්වයෙන් සහ කාර්යක්ෂමතාවයෙන් භාවිතා කළ හැකිය.

2. MySQL අනුවාදය අනුව කෑෂ් ව්‍යුහය

MySQL හි කෑෂ් විශේෂාංග අනුවාදය අනුව විශාල ලෙස වෙනස් වේ. විශේෂයෙන් MySQL 5.7 සහ එයට පෙර අනුවාද අතර, MySQL 8.0 සහ පසු අනුවාද අතර කෑෂ් සැලසුම් දර්ශනය වෙනස් වී ඇත. මෙහිදී MySQL හි භාවිතා වන ප්‍රධාන කෑෂ් වර්ග සහ අනුවාද අනුව වෙනස්කම් සාරාංශ කර ඇත.

2.1 Query Cache (MySQL 5.7 සහ එයට පෙර)

MySQL 5.7 සහ එයට පෙර අනුවාදවල “Query Cache” නාමයෙන් හැඳින්වෙන විශේෂාංගයක් පෙරනිමි ලෙස ඇතුළත් වේ. මෙම යන්ත්‍රණය ක්‍රියාත්මක SELECT ප්‍රකාශන සහ ඒවායේ ප්‍රතිඵල කට්ටලයන් මතකයේ ගබඩා කර, ඒම ප්‍රශ්නය නැවත ක්‍රියාත්මක කළ විට ඉක්මනින් ප්‍රතිඵල ලබා දේ. සරල වෙබ් සේවා සඳහා ප්‍රයෝජනවත් වුවත්, දත්ත නවීකරණය බහුලව සිදුවන පරිසරවල කෑෂ් නිතර අවලංගු වන බැවින් කාර්ය සාධනය අඩු වීමට හේතු විය හැකිය.

2.2 InnoDB Buffer Pool (MySQL 5.5–8.0)

MySQL 5.5 සිට, විශේෂයෙන් MySQL 8.0 හි “InnoDB Buffer Pool” මූලික කෑෂ් යන්ත්‍රණය බවට පත්ව ඇත. මෙම විශේෂාංගය InnoDB ගබඩා එන්ජින්ට දත්ත සහ සූචක තොරතුරු මතකයේ රඳවා තබා, තැටි I/O අඩු කර කාර්ය සාධනය වැඩි කරයි. Query Cache වලට වඩා, Buffer Pool තාබලය හෝ පේළි මට්ටමේ දත්ත කෑෂ් කරයි, එබැවින් විශාල පද්ධති හෝ නිතර නවීකරණය සිදුවන පරිසරවල ස්ථාවර කාර්ය සාධනය ලබා දේ.

2.3 Table Cache සහ අනෙකුත් කෑෂ්

එමෙන්ම MySQL “Table Cache (table_open_cache)”, “Thread Cache”, “User Variable Cache” වැනි විවිධ කෑෂ් යන්ත්‍රණ ඇතුළත් කරයි. විශේෂයෙන් Table Cache බහුලව ප්‍රවේශ කරන තාබල කළමනාකරණය කාර්යක්ෂමව කරයි, සහ සියලු අනුවාදවලම ලබා ගත හැකිය.

2.4 අනුවාද අනුව කෑෂ් විශේෂණ සාරාංශය

  • MySQL 5.7 සහ එයට පෙර : Query Cache + InnoDB Buffer + Table Cache
  • MySQL 8.0 සහ පසු : Query Cache ඉවත් කර ඇත, InnoDB Buffer Pool ප්‍රධාන, Table Cache දිගටම පවතී

ඉහත පරිදි, කෑෂ් වර්ග සහ ඒවායේ භූමිකා MySQL අනුවාදය අනුව වෙනස් වේ. එබැවින් ඔබ භාවිතා කරන අනුවාදයට ගැළපෙන පියවරයන් අවබෝධ කර ගැනීම අත්‍යවශ්‍ය වේ.

3. Query Cache මකා දැමීමේ ක්‍රම (MySQL 5.7 සහ එයට පෙර)

ඔබ MySQL 5.7 හෝ එයට පෙර අනුවාදයක් භාවිතා කරන්නේ නම්, “Query Cache” විශේෂාංගය බොහෝ විට සක්‍රිය වේ. මෙම කොටසේ Query Cache කෙසේ ක්‍රියා කරයි, එය මකා දැමීමේ ක්‍රම, සහ අවධානය යොමු කළ යුතු වැදගත් කරුණු පැහැදිලි කරයි.

3.1 Query Cache කියන්නේ කුමක්ද?

Query Cache SELECT ප්‍රකාශන සහ ඒවායේ ප්‍රතිඵල මතකයේ ගබඩා කර, ඒම ප්‍රශ්නය නැවත ක්‍රියාත්මක කළ විට කෑෂ් වෙතින් වහාම ප්‍රතිඵල ලබා දේ. ස්ථාවර දත්ත බහුලව යොදා ගන්නා වෙබ් අඩවි හෝ කුඩා පරිමාණ යෙදුම් සඳහා ප්‍රයෝජනවත් වේ. නමුත් දත්ත නිතර නවීකරණය වන පරිසරවල කෑෂ් ප්‍රයෝජනය අඩු වන බැවින් අවධානයෙන් භාවිතා කළ යුතුය.

3.2 Query Cache මකා දැමීමේ විධාන

Query Cache මකා දැමීමට ප්‍රධාන වශයෙන් පහත විධාන දෙක භාවිතා කරයි.

  • RESET QUERY CACHE; මෙය Query Cache හි සියලු ඇතුළත් කිරීම් මකා දමයි. සියලුම cached queries සහ result sets ඉවත් කර ඇති නිසා, cache බලපෑම් පූර්ණයෙන්ම ඉවත් කිරීමට අවශ්‍ය වන විට මෙය ප්‍රයෝජනවත් වේ.
  • FLUSH QUERY CACHE; මෙය cache හි “භාවිත නොකළ” ඇතුළත් කිරීම් පමණක් මකා දමයි. දැනට අවලංගු කර ඇති පරණ ඇතුළත් කිරීම් පමණක් පිරිසිදු කිරීමට අවශ්‍ය වන විට මෙය සුදුසුය.

3.3 විධාන ක්‍රියාත්මක කිරීමේ ආකාරය

MySQL client එකකින් හෝ පරිපාලන මෙවලමකින් (උදාහරණයක් ලෙස phpMyAdmin) පහත පරිදි විධාන ක්‍රියාත්මක කරන්න.

RESET QUERY CACHE;

හෝ:

FLUSH QUERY CACHE;

කොටස් කිහිපයකට අවසර අවශ්‍ය වේ. ඔබට අවසර දෝෂයක් ලැබේ නම්, පරිපාලක අවසර (උදාහරණයක් ලෙස root) සමඟ විධානය නැවත ක්‍රියාත්මක කරන්න.

3.4 අවධානම් සහ හොඳ පුරුදු

  • Query Cache පිරිසිදු කිරීම සම්පූර්ණ සේවාදායකයට බලපාන බැවින්, නිෂ්පාදන පරිසරයේ අවධානයෙන් ක්‍රියාත්මක කරන්න.
  • Cache පිරිසිදු කිරීමෙන් පසු, කාර්ය සාධනය තාවකාලිකව අඩුවිය හැක.
  • MySQL 8.0 සහ ඊට පසු, Query Cache විශේෂාංගය ඉවත් කර ඇති බැවින්, මෙම විධාන භාවිතා කළ නොහැක.

Query Cache කාර්යක්ෂමව පිරිසිදු කිරීමෙන්, අනිච්චිත cache බලපෑම් වැළැක්විය හැකි අතර, නවතම දත්ත සහ නිවැරදි හැසිරීම නිවැරදිව තහවුරු කළ හැක.

4. Table Cache සහ සම්බන්ධ Cache පිරිසිදු කිරීම

Query Cache හැර MySQL හි විවිධ cache යන්ත්‍රණයන් ඇත. විශේෂයෙන්, “Table Cache” යනු නිතර ප්‍රවේශ වන වගු කාර්යක්ෂමව කළමනාකරණය කිරීම සඳහා භාවිතා වේ. මෙම පරිච්ඡේදය Table Cache සහ සම්බන්ධ cache පිරිසිදු කිරීමේ ක්‍රමය පැහැදිලි කරයි.

4.1 Table Cache යනු කුමක්ද?

Table Cache (table_open_cache) යනු MySQL අභ්‍යන්තරව වගු විවෘතව තබා, එක් එක් ප්‍රවේශයකදී තැටියෙන් නැවත පූරණය කිරීම වැළැක්වීමට භාවිතා කරන යන්ත්‍රණයකි. බොහෝ පරිශීලකයන් හෝ යෙදුම් එකවර දත්ත ගබඩාවට ප්‍රවේශ වීමේදී කාර්ය සාධනය වැඩිදියුණු කිරීමට මෙය උපකාරී වේ.

4.2 Table Cache පිරිසිදු කිරීමේ ක්‍රමය

Table Cache පිරිසිදු කිරීම සඳහා, ප්‍රධාන වශයෙන් FLUSH TABLES විධානය භාවිතා කරයි.

FLUSH TABLES;

ඔබ මෙම විධානය ක්‍රියාත්මක කරන විට, MySQL වත්මන් විවෘතව ඇති සියලු වගු එකවර වසා, අවශ්‍ය පරිදි නැවත විවෘත කරයි. මෙය Table Cache අන්තර්ගතය නැවත සකස් කරයි, වගු නිර්වචන වෙනස්කම් යෙදීමට හෝ cache හේතුවෙන් ඇති ගැටළු විසඳීමට ප්‍රයෝජනවත් වේ.

4.3 අනෙකුත් සම්බන්ධ Cache පිරිසිදු කිරීම

Table Cache හැර MySQL විවිධ cache පිරිසිදු කිරීම සඳහා විධාන ලබා දේ. උදාහරණ ලෙස පහත දැක්වේ.

  • FLUSH TABLES WITH READ LOCK; සියලු වගු වසා, ඒවා අගුළු ලගා කරන තත්ත්වයට පත් කරයි; මෙය backup සහ ඒ ආකාරයේ ක්‍රියාමාර්ග සඳහා භාවිතා කළ හැක.
  • FLUSH PRIVILEGES; අවසර වගු (user සහ privilege තොරතුරු) සඳහා cache පිරිසිදු කර, අවසර වෙනස්කම් වහාම යෙදේ.
  • FLUSH STATUS; විවිධ status විචල්‍ය සඳහා සංඛ්‍යාලේඛන නැවත සකසයි (SHOW STATUS මගින් දර්ශනය කළ හැක).

4.4 එකවර බහු Cache පිරිසිදු කිරීම

Cache වර්ගය අනුව පිරිසිදු කිරීමේ විධානය වෙනස් වන බැවින්, බහු cache එකටම නැවත සකස් කිරීමට අවශ්‍ය නම්, එක් එක් විධානයක් පසුපස ක්‍රියාත්මක කරන්න. උදාහරණයක් ලෙස, සංවර්ධන හෝ පරීක්ෂණ පරිසරයක “සියලු cache එකවර නැවත සකස්” කිරීමට, පහත පරිදි විධාන එකතු කළ හැක:

FLUSH TABLES;
RESET QUERY CACHE;

(මෙය MySQL 5.7 සහ පසුගිය අනුවාද සඳහාය; RESET QUERY CACHE MySQL 8.0 සහ ඊට පසු ලබා නොදේ.)

4.5 සටහන්

  • Table Cache පිරිසිදු කිරීම බොහෝ විවෘත වගු ඇති පද්ධතිවල කාර්ය සාධනය තාවකාලිකව බලපා හැක.
  • නිෂ්පාදන පරිසරවල, මෙම විධාන ක්‍රියාත්මක කිරීමට පෙර බලපෑම් පරාසය පෙරම පරීක්ෂා කරන්න.
  • අවසර අනුව, සමහර විධාන ක්‍රියාත්මක නොවිය හැක. දෝෂයක් පෙන්වන්නේ නම්, සුදුසු අවසර ඇති පරිශීලකයකු සමඟ නැවත ක්‍රියාත්මක කරන්න.

Table Cache සහ සම්බන්ධ cache නිසි ලෙස පිරිසිදු කිරීමෙන්, MySQL ක්‍රියාකාරකම් වඩා ස්ථාවර කර, ගැටළු විසඳීම සරල කර ගත හැක.

5. InnoDB Buffer Pool “පිරිසිදු” කිරීමේ ක්‍රමය (MySQL 8.0 සඳහා)

In MySQL 8.0 සහ ඊළඟ අනුවාද වල, Query Cache විශේෂාංගය ඉවත් කර ඇත, සහ “InnoDB Buffer Pool” කෑෂ් කිරීමේ මධ්‍යම භූමිකාව ඉටු කරයි. එහෙත්, සාම්ප්‍රදායික Query Cache එකට වඩා, InnoDB Buffer Pool එකක් එකම විධානයක් මඟින් “සිඳගත” නොහැක. මෙම පරිච්ඡේදය InnoDB Buffer Pool එක ප්‍රභාවී ලෙස සිඳගැනීමට ප්‍රායෝගික ක්‍රම සහ වැදගත් අවධානම් පැහැදිලි කරයි.

5.1 InnoDB Buffer Pool එක කුමක්ද?

InnoDB Buffer Pool යනු වගු දත්ත, සූචක, සහ නිතර ප්‍රවේශ කරන දත්ත පිටු මතකයේ කෑෂ් කරමින් තැටි I/O අඩු කර ප්‍රදර්ශනය වැඩි කරන යන්ත්‍රණයකි. MySQL 8.0 හි, මෙම බෆර් පූල් ප්‍රදර්ශන සුදානම සඳහා ප්‍රධාන කොටස වේ.

5.2 Buffer Pool එක සිඳගැනීමේ ක්‍රම සහ විකල්ප ක්‍රම

InnoDB Buffer Pool එක සෘජුව “සිඳගැනීමට” මූලික MySQL විධානයක් නොමැත. ප්‍රධාන ක්‍රම පහත පරිදි වේ.

  • MySQL සේවාදායකය නැවත ආරම්භ කිරීම සේවාදායකය නවතා නැවත ආරම්භ කිරීමෙන් බෆර් පූල් අන්තර්ගතය ආරම්භ කරයි, එයින් සියලු කෑෂ් කර ඇති දත්ත ප්‍රභාවී ලෙස සිඳගනී. එහෙත්, නිෂ්පාදන පරිසරවලදී අවධානයෙන් මෙය කළ යුතුය.
  • බෆර් පූල් ප්‍රමාණය තාවකාලිකව වෙනස් කිරීම innodb_buffer_pool_size කුඩා අගයක් ලෙස සකසා MySQL නැවත ආරම්භ කිරීමෙන්, පසු ඒ අගය මුල් අගයට පත් කර නැවත ආරම්භ කිරීමෙන්, ඔබට බෆර් පූල් ආරම්භ කළ හැක.
  • තනි බෆර් පූල් පිටු පිරිසිදු කිරීම පහත විධානය බෆර් පූල් වලින් වෙනස් (dirty) පිටු තැටියට ලියයි, නමුත් එය කෑෂ් එක සම්පූර්ණයෙන් සිඳගන්නේ නැත.
    FLUSH TABLES;
    

5.3 බෆර් පූල් සිඳගැනීමේ ප්‍රායෝගික උදාහරණය

උදාහරණයක් ලෙස, ඔබට බෆර් පූල් සිඳගැනීමට අවශ්‍ය පරීක්ෂණ පරිසරයක, පහත පියවර අනුගමනය කරන්න:

  1. MySQL සේවාදායකය නවතන්න.
  2. අවශ්‍ය නම් innodb_buffer_pool_size සකසන්න.
  3. MySQL සේවාදායකය ආරම්භ කරන්න.

මෙය මතකයේ බෆර් පූල් නැවත සකසයි, එයින් සියලු කෑෂ් කර ඇති තොරතුරු ඉවත් වූ තත්ත්වයක් ලැබේ.

5.4 අවධානම් සහ මෙහෙයුම් උපදෙස්

  • බෆර් පූල් ආරම්භ කිරීම (සේවාදායකය නැවත ආරම්භ කිරීමෙන්) සේවාව තාවකාලිකව නවත්වන බැවින්, නිෂ්පාදන පරිසරවල පෙර සමන්වය සහ දැනුම්දීම අත්‍යවශ්‍ය වේ.
  • බෆර් පූල් සිඳගත් පසු, තැටි ප්‍රවේශය වැඩි වේ සහ ප්‍රදර්ශනය තාවකාලිකව අඩු විය හැක. උච්ච-ට්‍රැෆික් පද්ධතිවල අවධානයෙන් සිටින්න.
  • නැවත ආරම්භ කිරීම අසීරු නම්, තහවුරු කිරීමේ කාර්ය සඳහා වෙනම පරීක්ෂණ හෝ සංවර්ධන පරිසරයක් සකස් කරන්න.

InnoDB Buffer Pool කෙසේ ක්‍රියා කරයි යන්න සම්පූර්ණයෙන් අවබෝධ කරගෙන, සුදුසු වේලාවන්හි නැවත සකස් කිරීමෙන්, MySQL 8.0 සහ ඊළඟ අනුවාදවලත් ස්ථාවර මෙහෙයුම් ලබා ගත හැක.

6. තෙවන පාර්ශව මෙවලම් භාවිතයෙන් කෑෂ් පාලනය

සම්මත විධාන වලට අමතරව තෙවන පාර්ශව මෙවලම් සහ උපකරණ භාවිතයෙන් MySQL කෑෂ් කළමනාකරණය වැඩි දක්ෂතාවක් සහ දෘශ්‍යමාන කිරීම පහසු කරයි. මෙහි, නියෝජිත මෙවලම් සහ ප්‍රායෝගික භාවිත උදාහරණ හඳුන්වා දෙමු.

6.1 MySQLTuner සමඟ කෑෂ් නිරීක්ෂණය සහ සුදානම

“MySQLTuner” යනු MySQL සේවාදායකයේ තත්ත්වය විශ්ලේෂණය කරන ප්‍රසිද්ධ රෝගනායක මෙවලමක් වන අතර, ප්‍රදර්ශන වැඩිදියුණු කිරීමට ස්වයංක්‍රීයව යෝජනා ලබා දෙයි. එය Query Cache, InnoDB Buffer Pool, සහ Table Cache වැනි කෑෂ් සඳහා භාවිතා සංඛ්‍යාලේඛන සහ නිර්දේශිත වින්‍යාස අගයන්ද පෙන්වයි.

MySQLTuner භාවිතා කරන ආකාරය:

  1. ඔබේ සේවාදායකයේ MySQLTuner ස්ථාපනය කරන්න (Perl ස්ක්‍රිප්ට් එකක් ලෙස බෙදා හැරේ).
  2. රෝගනායක ක්‍රියාත්මක කිරීමට පහත විධානය ධාවනය කරන්න.
    perl mysqltuner.pl
    
  1. ප්‍රතිඵලවල “Query cache” සහ “InnoDB Buffer Pool” වැනි රෝගනායක අයිතම පෙන්වයි, ඒ සමඟ නිර්දේශිත පරාමිතීන් වෙනස් කිරීම හෝ අවශ්‍ය නම් අනිවාර්ය නොවන කෑෂ් විශේෂාංග අක්‍රිය කිරීමේ යෝජනා ද ඇත.

6.2 Percona Toolkit භාවිතය

“Percona Toolkit” යනු MySQL මෙහෙයුම් සහ ප්‍රදර්ශන විශ්ලේෂණ සඳහා ප්‍රයෝජනවත් සම්පූර්ණ මෙවලම් කට්ටලයකි. උදාහරණයක් ලෙස, එය එකම විධානයක් මඟින් බෆර් පූල් තත්ත්වය සහ වගු කෑෂ් භාවිතය පිළිබඳ වාර්තා සකස් කර, විශාල පරිමාණ පරිසර නිරීක්ෂණයට පහසුකම් සලසයි.

6.3 නිරීක්ෂණ සහ දෘශ්‍යමාන කිරීමේ මෙවලම් උදාහරණ

  • phpMyAdmin / MySQL Workbench – මෙම කළමනාකරණ මෙවලම් GUI මගින් වත්මන් කෑෂ් තත්ත්වය පරීක්ෂා කිරීම සහ FLUSH විධාන ක්‍රියාත්මක කිරීමේ හැකියාව ලබා දෙයි. ඒවා පරිශීලක‑හිතකාමී වන අතර නිරීක්ෂණය සහ සුළු කෑෂ් පාලන කාර්යයන් සඳහා සුදුසුය.
  • Zabbix or Prometheus – මෙම මෙවලම් සේවාදායක මතක භාවිතය සහ InnoDB බෆර් පූල් භාවිතය නිරීක්ෂණය කරයි, කෑෂ් හැසිරීම සහ සම්පත් සීමා ගැන රියල්‑ටයිම් දෘශ්‍යකරණය සපයයි. ඒවා මුලික විකෘතිකරණ හඳුනා ගැනීම සහ ස්වයංක්‍රීය ඇලර්ට් ලබා දීම සඳහා ප්‍රයෝජනවත් වේ।

6.4 තෙවන පාර්ශවීය මෙවලම් භාවිතා කිරීමේ අවධානම්

  • මෙම මෙවලම් ක්‍රියාත්මක කිරීම සඳහා පරිපාලක අවසර හෝ විශේෂ MySQL පරිශීලක අවසර අවශ්‍ය විය හැකිය.
  • නිෂ්පාදන පරිසරයේ මෙවලම් භාවිතා කිරීමට පෙර, ඒවායේ හැසිරීම පරීක්ෂා පරිසරයකින් තහවුරු කිරීම සුපිරිශීලී වේ.
  • සමහර මෙවලම් තාවකාලිකව සේවාදායක භාරය වැඩි කරනු ඇත, එබැවින් අධික නොවන වේලාවල මෙවලම් ක්‍රියාත්මක කිරීම ගැන සිතන්න।

තෙවන පාර්ශවීය මෙවලම් කාර්යක්ෂමව භාවිතා කිරීමෙන්, ඔබට MySQL කෑෂ් තත්ත්වය දෘශ්‍යමාන කරගත හැකි අතර, කාලෝචිතව පිරිසිදු කිරීම සහ සුදුසුකම් වැඩිදියුණු කිරීම සිදු කළ හැකිය।

7. අවදානම් සහ අවධානම්

MySQL කෑෂ් පිරිසිදු කිරීම ඉතා ප්‍රයෝජනවත් වුවද, වැරදි වේලාවක හෝ වැරදි ආකාරයෙන් එය සිදු කිරීම අනපේක්ෂිත ගැටළු හෝ කාර්ය සාධන අඩු වීමක් ඇති කරයි. මෙම අධ්‍යයනය කෑෂ් පිරිසිදු කිරීමේ පෙර ඔබට අවබෝධය ඇති කරගත යුතු අවදානම් සහ අවධානම් පැහැදිලි කරයි।

7.1 කාර්ය සාධන මත බලපෑම

කෑෂ් පිරිසිදු කිරීමෙන් පසු, MySQL සේවාදායකයේ භාරය තාවකාලිකව වැඩි විය හැකිය. විශේෂයෙන් InnoDB බෆර් පූල් හෝ Table Cache වැනි විශාල කෑෂ් පිරිසිදු කරන විට, මතකයේ ඇති සියලු දත්ත අහිමි වේ. එම නිසා, සෑම ගනුදෙනුකරුගේ ඉල්ලීමක් සඳහාම තැටි I/O සිදු වන අතර, ප්‍රතිචාර වේගය ගණනාවකට අඩු විය හැකිය।

7.2 නිෂ්පාදන පරිසරයේ ඉතා සැලකිලිමත් වන්න

නිෂ්පාදන පද්ධතියක කෑෂ් පිරිසිදු කිරීමේදී විශේෂ අවධානය අවශ්‍ය වේ. උච්ච ගමන් බර වේලාවල විධාන ක්‍රියාත්මක කිරීම සමස්ත පද්ධතියේ කාර්ය සාධනයට අහිතකර බලපෑමක් ඇති කරයි, සේවා අත්හිටුවීම් හෝ ප්‍රතිචාර මන්දගාමී වීමක් සිදු විය හැකිය। නිෂ්පාදන පරිසරයේ, ප්‍රමාණවත් සත්‍යාපනය, පෙර සම්බන්ධතා, උපස්ථාපන, සහ කාලය තේරීම අත්‍යවශ්‍ය වේ।

7.3 දත්ත යාවත්කාලීන සහ සමග්‍රහණය ගැන සැලකිල්ලක් ගන්න

කෑෂ් පිරිසිදු කිරීමේ වේලාව අනුව, දත්ත අසමතුලිතතා හෝ අනිච්චිත යෙදුම් හැසිරීම සිදු විය හැකිය। උදාහරණයක් ලෙස, කෑෂ් පිරිසිදු කිරීමේදී වගු ව්‍යුහයන් වෙනස් කරමින් හෝ කට්ටල සැකසීම සිදු වෙමින් සිටින විට, විමසුම් ප්‍රතිඵල හෝ යෙදුම් ලොජික් අසමත් ලෙස හැසිරෙයි।

7.4 අනිවාර්ය නොවන කෑෂ් පිරිසිදු කිරීමෙන් වැළකින්න

“දැන් කෑෂ් පිරිසිදු කරමු” යන පුරුද්දෙන් වැළකින්න। MySQL කෑෂ් සේවාදායක භාරය අඩු කර, සැකසීමේ වේගය වැඩි කිරීම සඳහා නිර්මාණය කර ඇත। නිතර පිරිසිදු කිරීම කාර්ය සාධනය අස්ථිර කරයි। කෑෂ් පිරිසිදු කිරීම සැබවින්ම අවශ්‍ය වන අවස්ථාවල පමණක් සිදු කරන බවට සැමවිටම සහතික වන්න।

7.5 අවසර සහ ආරක්ෂක සැලකිලිමත් වීම

කෑෂ්‑පිරිසිදු කිරීමේ විධාන සහ මෙවලම් සඳහා ප්‍රමාණවත් අවසර අවශ්‍ය වේ। අධික අවසර ඇති පරිශීලකයන් සමඟ ඒවා ක්‍රියාත්මක කිරීම, අනෙකුත් වැදගත් සැකසුම් හෝ දත්තවලට බලපෑමක් ඇති කරනු ඇත। අවම අවසර ඇති පරිශීලකයන් භාවිතා කිරීම, ක්‍රියාත්මක ලොග් සටහන් තබා ගැනීම වැනි ආරක්ෂක හොඳ පුරුදු අනුගමනය කරන්න।

මෙම අවදානම් සහ අවධානම් අවබෝධ කරගැනීමෙන්, ඔබ MySQL කාර්ය සාධනය සහ ස්ථායිත්වය ආරක්ෂිතව හා කාර්යක්ෂමව රැකගත හැකිය।

8. ක්‍රියා පටිපාටි සාරාංශය (ඉක්මන් යොමු වගුව)

පහත වගුව, මෙතෙක් ඉදිරිපත් කර ඇති MySQL කෑෂ්‑පිරිසිදු කිරීමේ ක්‍රියා පටිපාටි, කෑෂ් වර්ගය සහ MySQL අනුවාදය අනුව සංවිධානය කර ඇත। මෙය මෙහෙයුම් හෝ ගැටලු විසඳුම් කාලයේ යොදා ගන්න।

Target OperationMySQL VersionExample Command / MethodEffect
Query Cache5.7 and earlierRESET QUERY CACHE; FLUSH QUERY CACHE;Delete all Query Cache entries or only unused entries
Table CacheAll versionsFLUSH TABLES;Clear cache of open tables
Privilege CacheAll versionsFLUSH PRIVILEGES;Clear privilege information cache
Status StatisticsAll versionsFLUSH STATUS;Reset SHOW STATUS statistics
InnoDB Buffer8.0 and laterServer restart Temporary buffer pool size adjustmentInitialize buffer pool (memory cache)
Comprehensive CacheAll versionsExecute multiple commands above in combinationClear cache-related components comprehensively

ඉක්මන් විස්තරය:

  • RESET QUERY CACHE; — සම්පූර්ණ Query Cache නැවත සකසයි (MySQL 5.7 සහ පසුගිය අනුවාද සඳහා පමණක්).
  • FLUSH QUERY CACHE; — අවලංගු සහ භාවිත නොකළ Query Cache ඇතුළත් අයිතම පමණක් මකා දමයි.
  • FLUSH TABLES; — සියලු විවෘත වගු වරක් වසා, Table Cache නැවත සකසයි.
  • FLUSH PRIVILEGES; — පරිශීලක අවසර වෙනස්කම් වහාම ක්‍රියාත්මක කරයි.
  • FLUSH STATUS; — විවිධ තත්ත්ව සංඛ්‍යාලේඛන නැවත සකසයි, කාර්ය සාධන විශ්ලේෂණයේ ප්‍රයෝජනීය.
  • Initialize InnoDB Buffer Pool — සෘජුවම නොව, සේවාදායකය නැවත ආරම්භ කිරීම හෝ innodb_buffer_pool_size වෙනස් කිරීම (MySQL 8.0 සහ පසුගිය අනුවාද) මගින් අසාධාරණ ලෙස ලබා ගත හැකිය।

By using this table, you can quickly select the appropriate cache-clearing procedure based on your environment and objectives.

9. FAQ (නිතර අසන ප්‍රශ්න)

Below are common questions about clearing MySQL caches that are frequently raised by operators and developers, along with their answers. Use these as a practical reference.

Q1. Query Cache සහ InnoDB Buffer Pool එකම ද?

A. නැත, ඒවා වෙනස් යන්ත්‍රණයන් වේ. Query Cache SQL විමසුම් ප්‍රතිඵල කට්ටලයන්ම ගබඩා කරයි, එතැන්දී InnoDB Buffer Pool වගු දත්ත සහ ඉන්ඩෙක්සයන් මතකයේ රඳවා තබයි. ඒවායේ අරමුණු සහ අභ්‍යන්තර ක්‍රියාකාරකම් සම්පූර්ණයෙන් වෙනස් වන බැවින්, ඒවා එකට ගැලපෙන්න එපා.

Q2. Cache-ඉවත් කිරීමෙන් පසු කාර්ය සාධනය කීයද අඩුවේ?

A. කාර්ය සාධනය තාවකාලිකව අඩුවේ. විශාල cache-යන් ඇති පරිසරවල, මුල් විමසුම ක්‍රියාත්මක වන විට තැටි ප්‍රවේශය වැඩිවීම නිසා ප්‍රතිචාර වේගය ගැඹුරු ලෙස අඩුවිය හැක. නමුත් cache නැවත ගොඩනැගීමත් සමඟ කාර්ය සාධනය පියවරෙන් පියවර සුවිශේෂී වේ.

Q3. නිෂ්පාදන පරිසරයක cache-ඉවත් කිරීම ආරක්ෂිතද?

A. සාමාන්‍යයෙන් එය නිර්දේශ නොකෙරේ. නිෂ්පාදනයේ cache-ඉවත් කිරීම කාර්ය සාධනය සහ සේවා ස්ථාවරතාවයට සෘජු බලපෑමක් කරයි. ප්‍රමාණවත් පරීක්ෂණ, සූදානම් කිරීම, සහ කාලසටහන් සැකසීම අත්‍යවශ්‍ය වේ. ඔබට කරගත යුතු නම්, පූර්වයෙන්ම හවුල්කරුවන්ට දැනුම් දී, උපස්ථාපන (backup) ගත යුතුය.

Q4. MySQL 8.0 හි Query Cache සක්‍රිය කළ හැදුවද?

A. නැත. Query Cache විශේෂාංගය MySQL 8.0 හි සම්පූර්ණයෙන් ඉවත් කර ඇත. ඔබට Query Cache ක්‍රියාකාරිත්වය අවශ්‍ය නම්, MySQL 5.7 හෝ එයට පෙර භාවිතා කළ යුතුය.

Q5. AWS RDS හෝ Cloud SQL වැනි වලාකුළු සේවා වල cache-ඉවත් කළ හැදුවද?

A. හැක, නමුත් සේවාව අනුව සීමා තිබිය හැක. උදාහරණයක් ලෙස, RDS හි කිසිඳු FLUSH විධාන හෝ සේවාදායකය නැවත ආරම්භ කිරීම සීමා කර තිබිය හැක. ඉදිරියට යාමට පෙර නිල ලේඛන සහ කළමනාකරණ කන්සෝල උපදෙස් පරීක්ෂා කරන්න.

Q6. cache-ඉවත් කිරීම ස්වයංක්‍රීයව කිරීමේ ක්‍රමයක් තිබේද?

A. ඔබට shell script හෝ cron job භාවිතා කර FLUSH විධාන නියමිත කාලවල ක්‍රියාත්මක කිරීම ස්වයංක්‍රීය කළ හැක. නමුත් නිතර cache-ඉවත් කිරීම නිර්දේශ නොකෙරේ. අවශ්‍යතාවය පමණක් ඇති විට, නියමිත නඩත්තු කාලවලදී පමණක් ස්වයංක්‍රීය කිරීම භාවිතා කරන්න.

By reviewing these FAQs in advance, you can resolve operational concerns and perform MySQL cache-clearing tasks with greater confidence.

10. සාරාංශය සහ හොඳම ක්‍රියාමාර්ග

Clearing MySQL caches is an essential operation in development and production environments. In this article, we covered cache types by MySQL version, clearing methods, precautions, and frequently asked questions. Based on this information, here are the key best practices.

10.1 පරීක්ෂණ පරිසරවල cache-ඉවත් කිරීම ක්‍රියාත්මකව භාවිතා කරන්න

During testing, validation, and debugging, you often need to remove cache effects to verify actual behavior. Use cache-clearing commands appropriately to improve reproducibility and testing accuracy.

10.2 නිෂ්පාදනයේ අවධානයෙන් ක්‍රියා කරන්න

Clearing caches in production can significantly impact performance and stability. Always evaluate the scope of impact and timing before execution. Notify relevant parties and take backups when necessary. Avoid performing cache clearing indiscriminately—execute it only when truly required.

10.3 අනුවාද සහ cache වර්ග නිවැරදිව අවබෝධ කරගන්න

Because MySQL caching mechanisms differ by version, it is important to understand which caches and clearing methods apply to your environment. Each cache type has different commands and impact scopes, so choose the most appropriate procedure based on your objective.

10.4 තෙවන පාර්ශව සහ නිරීක්ෂණ මෙවලම් භාවිතා කරන්න

Tools such as MySQLTuner and Percona Toolkit help evaluate server conditions and cache utilization objectively. Utilize visualization and automation tools to support advanced operations and prevent issues proactively.

10.5 අවසාන අදහස්

නිවැරදිව ක්‍රියාත්මක කළ විට, MySQL කෙෑෂ් හිස් කිරීම ස්ථාවර දත්ත සමුදාය ක්‍රියාකාරකම්, ගැටලු විසඳීම සහ කාර්ය සාධනය වැඩිදියුණු කිරීම සඳහා බොහෝ දුරට දායක වේ. ඔබගේ පරිසරය සඳහා වඩාත් සුදුසු කෙෑෂ්-හිස් කිරීමේ ක්‍රම යෙදීම සහ ඉහළ තත්ත්වයේ පද්ධති කළමනාකරණය ලබා ගැනීම සඳහා මෙම මාර්ගෝපදේශය භාවිතා කරන්න.