MySQL සංග්‍රහණය පැහැදිලි කිරීම: අක්ෂර අනුක්‍රමණය සැකසීම, වෙනස් කිරීම සහ උපරිම කිරීම

目次

1. Introduction

MySQL යනු වඩාත් භාවිතා වන දත්ත ගබඩා කළමනාකරණ පද්ධති අතරින් එකක් වන අතර, එහි “Collation” (අක්ෂර සකස් කිරීම) යනු 문자열 දත්ත සැසඳීම සහ අනුක්‍රමණය කිරීමේ ක්‍රමය මත බලපාන වැදගත් සැකසුමකි.

The Importance of Collation

සුදුසු collation එකක් සකස් නොකළහොත්, සෙවීම් ප්‍රතිඵල අපේක්ෂා වලට අනුකූල නොවී, දත්ත ගබඩා කාර්ය සාධනය අඩුවිය හැකිය. විශේෂයෙන් බහුභාෂා පද්ධතිවල, අක්ෂර සැසඳීමේ නිරවද්‍යතාවය සහ සෙවීම් හැසිරීම වැදගත් ලෙස බලපායි.

This article provides a detailed explanation of collations in MySQL, including configuration methods, differences between types, and important considerations. By understanding these concepts, you can achieve more effective database management.

2. Collation යනු කුමක්ද?

Collation යනු MySQL විසින් 문자열 අගයන් සැසඳීම සහ අනුක්‍රමණය කිරීමේදී යොදා ගන්නා නීති වේ.

Collation හි භූමිකාව

  • String Sorting: 문자열 දත්තයේ අනුක්‍රමය තීරණය කරයි.
  • String Comparison: WHERE name = 'Sagawa' වැනි සැසඳීමේ මාර්ගෝපදේශ නියම කරයි.
  • Search Accuracy: බහුභාෂා සහාය සහ ගැලපීමේ නිරවද්‍යතාවය මත බලපායි.

අක්ෂර සමුහ සමඟ සම්බන්ධතාව

Collation අක්ෂර සමුහය සමඟ ආසන්න සම්බන්ධයක් ඇත. උදාහරණයක් ලෙස, utf8 අක්ෂර සමුහය පහත collation ගණනාවක් අඩංගු වේ:

  • utf8_general_ci : අකුරු-අකාර නොසලකා සැසඳීම.
  • utf8_bin : බයිනරි සැසඳීම.

Collation නාමකරණ රීතිය

character_set_comparison_type

උදාහරණය:

  • utf8_general_ci : Case-insensitive comparison (ci: case insensitive).
  • utf8_bin : Binary comparison.

3. MySQL හි Collation වින්‍යාස මට්ටම්

MySQL හි, collation ගණනාව පහත පරිදි මට්ටම් පහකින් වින්‍යාස කළ හැක:

සේවාදායක මට්ටම

SHOW VARIABLES LIKE 'collation_server';

සැකසීම වෙනස් කිරීමට, පහත my.cnf ගොනුවට එක් කර සේවාදායකය නැවත ආරම්භ කරන්න.

[mysqld]
collation_server=utf8mb4_unicode_ci

දත්ත ගබඩා මට්ටම

ALTER DATABASE database_name DEFAULT COLLATE utf8mb4_unicode_ci;

වගුව මට්ටම

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

තීරුව මට්ටම

ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR(255) COLLATE utf8mb4_unicode_ci;

String Literal මට්ටම

SELECT * FROM table_name WHERE column_name = 'value' COLLATE utf8mb4_bin;

4. ප්‍රධාන Collation වර්ග සහ ඒවායේ ලක්ෂණ

utf8_general_ci

  • Features: අකුරු-අකාර නොසලකා වේගවත් සැසඳීම.
  • Note: අඩු නිරවද්‍යතාවයක් සහ Unicode ප්‍රමිතියට සම්පූර්ණයෙන් අනුකූල නොවේ.

utf8_unicode_ci

  • Features: Unicode ප්‍රමිතිය මත පදනම් වූ උසස් නිරවද්‍යතාවයේ සැසඳීම.
  • Note: utf8_general_ci ට වඩා ටිකක් මන්දගාමී වේ.

utf8_bin

  • Features: අකුරු-අකාර සංවේදී වන අතර නිරවද්‍ය ගැලපීම් අවශ්‍ය වේ.
  • Use Case: මුරපද සහ හැඳුනුම්කරු සැසඳීම.

utf8mb4_unicode_ci

  • Features: නවීන Unicode ප්‍රමිතීන්ට අනුකූල වන අතර බහුභාෂා පද්ධති සඳහා සුදුසුය.
  • Use Case: ඉමෝජි සහ විශේෂ සංකේතයන් සමඟ ක්‍රියා කරන යෙදුම්.

5. Collation පරීක්ෂා කිරීම සහ වෙනස් කිරීම

MySQL හි, ඔබට දත්ත ගබඩා, වගුව, සහ තීරුව මට්ටම්වල collation සැකසුම් පරීක්ෂා කර වෙනස් කළ හැක.

Collation පරීක්ෂා කිරීමේ ක්‍රම

දත්ත ගබඩා Collation පරීක්ෂා කිරීම

SELECT SCHEMA_NAME, DEFAULT_COLLATION_NAME 
FROM INFORMATION_SCHEMA.SCHEMATA
WHERE SCHEMA_NAME = 'database_name';

වගුව Collation පරීක්ෂා කිරීම

SHOW TABLE STATUS WHERE Name = 'table_name';

තීරුව Collation පරීක්ෂා කිරීම

SHOW FULL COLUMNS FROM table_name;

Collation වෙනස් කිරීමේ ක්‍රම

දත්ත ගබඩා Collation වෙනස් කිරීම

ALTER DATABASE database_name
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;

වගුව Collation වෙනස් කිරීම

ALTER TABLE table_name
CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

තීරුව Collation වෙනස් කිරීම

ALTER TABLE table_name
MODIFY COLUMN column_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

තත්කාලිකව කොලේෂන් වෙනස් කිරීම

විවිධ කොලේෂන් ඇති තීරුවල සසඳන විට, දෝෂ වලක්වා ගැනීමට COLLATE වාක්‍යය භාවිතා කළ හැක.

SELECT * FROM table_name
WHERE column1 COLLATE utf8mb4_unicode_ci = column2;

වෙනස්කම් සිදු කිරීමට පෙර ඔබේ දත්ත සෑම විටම පිටපත් ගන්න සහ ඔබේ යෙදුම සමඟ අනුකූලතාවය පරීක්ෂා කරන්න.

6. කොලේෂන් සඳහා වැදගත් සැලකිලි සහ හොඳම ක්‍රියාමාර්ග

MySQL හි කොලේෂන් සැකසීමේදී, ප්‍රධාන සැලකිලි තේරුම් ගැනීම සහ සුදුසු මෙහෙයුම් ක්‍රම අනුගමනය කිරීම වැදගත් වේ. පහත කොලේෂන් කාර්යක්ෂමව කළමනාකරණය කිරීම සඳහා වැදගත් සටහන් සහ හොඳම ක්‍රියාමාර්ග ඇත.

වැදගත් සැලකිලි

විවිධ කොලේෂන් අතර මෙහෙයුම්

විවිධ කොලේෂන් ඇති තීරුවල සසඳීම හෝ එක් කිරීම දෝෂ ඇති වීමට හේතු විය හැක.

  • උදාහරණ දෝෂ:
    ERROR 1267 (HY000): Illegal mix of collations for operation '='
    
  • විසඳුම: කොලේෂන් එකතු කිරීම සඳහා COLLATE වාක්‍යය භාවිතා කරන්න.
    SELECT * FROM table_name
    WHERE column1 COLLATE utf8mb4_unicode_ci = column2;
    

කොලේෂන් වෙනස් කිරීම සහ පවතින දත්ත

කොලේෂන් වෙනස් කිරීම පවතින දත්තවලට බලපායි. සසඳීම සහ සෙවීමේ හැසිරීම වෙනස් විය හැකි බැවින්, කාර්යක්ෂම පරීක්ෂණයක් අවශ්‍ය වේ.

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

  • utf8mb4_unicode_ci වැනි උසස්-නිවැරදි කොලේෂන් utf8_general_ci ට වඩා මන්දගාමී විය හැක.
  • විශාල දත්ත කට්ටලයන් සමඟ කටයුතු කරන විට, කොලේෂන් තේරීම කාර්ය සාධනයට වැදගත් ලෙස බලපායි, එබැවින් අවධානයෙන් තෝරා ගත යුතුය.

මාරු කිරීමේ ගැටළු

කොලේෂන් වෙනස් කරන විට, යෙදුම් සහ බාහිර පද්ධති සමඟ අනුකූලතාවය තහවුරු කරන්න.

හොඳම ක්‍රියාමාර්ග

1. අවශ්‍යතා අනුව කොලේෂන් තෝරන්න

කොලේෂන් තෝරා ගැනීමේදී පහත කරුණු සැලකිල්ලට ගන්න:

  • නිවැරදිත්වය ප්‍රමුඛතාව: නිරවද්‍ය සසඳුම් අවශ්‍ය නම් utf8_unicode_ci හෝ utf8mb4_unicode_ci භාවිතා කරන්න.
  • කාර්ය සාධන ප්‍රමුඛතාව: ටිකක් අඩු නිවැරදිත්වය පිළිගත හැකි නම් utf8_general_ci තෝරන්න.
  • බහුභාෂා සහය: ඉමෝජි සහ විශේෂ අක්ෂර සමඟ කටයුතු කරන විට utf8mb4-අධාරිත කොලේෂන් භාවිතා කරන්න.

2. කොලේෂන් ප්‍රමිතීකරණය කරන්න

දත්ත ගබඩාව පුරා එකම කොලේෂන් භාවිතා කිරීම දෝෂ සහ අසමත්තා වැළැක්වීමට උපකාරී වේ.

  • දත්ත ගබඩාව, වගුව, තීරුව මට්ටමින් එකම කොලේෂන් යෙදිය යුතුය.
  • අවශ්‍ය විට තත්කාලික වෙනස්කම් සඳහා COLLATE වාක්‍යය භාවිතා කරන්න.

3. වෙනස්කම් කිරීමට පෙර පරීක්ෂා කර පිටපත් ගන්න

වෙනස්කම් කිරීමට පෙර:

  • පරීක්ෂණ පරිසරයකදී හැසිරීම තහවුරු කරන්න.
  • නිෂ්පාදන දත්තවල සම්පූර්ණ පිටපතක් සාදන්න.

4. කාර්ය සාධනය වැඩිදියුණු කරන්න

විමසුම් කාර්ය සාධනයට කොලේෂන් ඇති කරන බලපෑම අඩු කිරීම සඳහා:

  • නිතර විමසන තීරුවල (උදා. සූචිගත තීරුවල) උසස් කාර්ය සාධන කොලේෂන් භාවිතා කරන්න.
  • අවශ්‍ය විට විශේෂ විමසුම් වල තත්කාලිකව කොලේෂන් වෙනස් කරන්න.

5. නවතම Unicode සහය භාවිතා කරන්න

බහුභාෂා පද්ධති සඳහා, නවතම Unicode ප්‍රමිතිය මත පදනම් වූ utf8mb4_0900_ai_ci භාවිතා කිරීම නිවැරදිත්වය සහ අනුකූලතාවය වැඩි කරයි.

7. නිගමනය

MySQL කොලේෂන් යනු දත්ත ගබඩාව තුළ 문자열 දත්ත සසඳා සහ අනුපිළිවෙළට තැබීමට තීරණාත්මක සාධකයකි. මෙම ලිපිය කොලේෂන්ගේ මූලික සංකල්පය සිට සැකසුම් ක්‍රම, සැලකිලි සහ හොඳම ක්‍රියාමාර්ග දක්වා සියල්ල ආවරණය කරයි.

ප්‍රධාන සාරාංශ

  1. කොලේෂන් යනු කුමක්ද? කොලේෂන් 문자열 සසඳා සහ අනුපිළිවෙළට තැබීම නියම කරයි. සුදුසු කොලේෂන් තේරීම දත්ත ගබඩාවේ නිවැරදිත්වය සහ කාර්ය සාධනය දෙකම වැඩි කරයි.
  2. ආකාරවත් සැකසුම් මට්ටම් MySQL සර්වර්, දත්ත ගබඩාව, වගුව, තීරුව, සහ ලිටරල් යන බහු මට්ටම්හි කොලේෂන් සැකසීමට ඉඩ දේ. මෙම ආකාරවත්කම සෑම ස්තරයකම සුදුසු සැකසුම් ලබා දේ.
  3. ප්‍රධාන කොලේෂන් ලක්ෂණ
  • utf8_general_ci : වේගවත් නමුත් අඩු නිවැරදිත්වය.
  • utf8_unicode_ci : වැඩි නිවැරදිත්වය නමුත් ටිකක් මන්දගාමී.
  • utf8mb4_unicode_ci : Unicode‑අනුකූල වන අතර ඉමෝජි සහ විශේෂ අක්ෂර සහය දක්වයි.
  1. ප්‍රායෝගික සත්‍යාපනය සහ වෙනස් කිරීම මෙම ලිපිය කෝලේෂන් පරීක්ෂා කිරීම සහ වෙනස් කිරීම සඳහා SQL විධාන හඳුන්වා දී ඇත, ප්‍රායෝගික ක්‍රියාත්මක කිරීමේ මාර්ගෝපදේශය සමඟ.
  2. සලකා බැලීම් සහ හොඳම ක්‍රම කෝලේෂන් වෙනස් කිරීමේදී ප්‍රධාන අවධානම් තේරුම් ගන්න, සහ සැමවිටම පරීක්ෂණ සහ බැකප්ස් කලින් සිදු කරන්න.

කෝලේෂන් ප්‍රභාවී ලෙස භාවිත කිරීම

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