InnoDB සහ MyISAM අතර ඇති ප්රධාන වෙනස්කම් මොනවාද?
InnoDB සහ MyISAM අතර ඇති ප්රධාන වෙනස්කම් මොනවාද?
Answers:
මා දකින පළමු ප්රධාන වෙනස නම් InnoDB පේළි මට්ටමේ අගුල ක්රියාත්මක කරන අතර MyISAM හට කළ හැක්කේ මේස මට්ටමේ අගුලක් පමණි. InnoDB හි වඩා හොඳ බිඳවැටීම් ප්රතිසාධනය ඔබට සොයාගත හැකිය. කෙසේ වෙතත්, FULLTEXT
MyISAM මෙන් v5.6 වන තෙක් එයට සෙවුම් දර්ශක නොමැත. InnoDB ගනුදෙනු, විදේශීය යතුරු සහ සම්බන්ධතා අවහිරතා ද ක්රියාත්මක කරන අතර MyISAM එසේ නොකරයි.
ලැයිස්තුවට තව ටිකක් ඉදිරියට යා හැකිය. එහෙත්, ඔවුන් දෙදෙනාම ඔවුන්ගේ වාසි සහ එකිනෙකාට එරෙහි අවාසි වල සුවිශේෂී වාසි ඇත. ඒ සෑම එකක්ම අනෙක් අවස්ථා වලට වඩා සමහර අවස්ථා වලදී වඩාත් සුදුසු වේ.
එබැවින් සාරාංශ කිරීමට ( TL; DR ):
FULLTEXT
සෙවුම් දර්ශක ඇත, InnoDB MySQL 5.6 (2013 පෙබරවාරි) තෙක් නොතිබුණි.version 5.6.4
InnoDB සහය FULLTEXT
සෙවීම. dev.mysql.com/doc/refman/5.6/en/fulltext-restrictions.html
තවම සඳහන් කර නොමැති තවත් ප්රධාන වෙනසක් වන්නේ එක් එක් ගබඩා එන්ජිම සඳහා හැඹිලිගත කරන්නේ කෙසේද යන්නයි.
භාවිතා කරන ප්රධාන යාන්ත්රණය යතුරු හැඹිලියයි. එය හැඹිලි .MYI ගොනු වලින් දර්ශක පිටු පමණක් රඳවා ගනී. ඔබගේ යතුරු හැඹිලිය විශාල කිරීමට, පහත විමසුම ක්රියාත්මක කරන්න:
SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1))
recommended_key_buffer_size FROM
(SELECT LEAST(POWER(2,32),KBS1) KBS
FROM (SELECT SUM(index_length) KBS1
FROM information_schema.tables
WHERE engine='MyISAM' AND
table_schema NOT IN ('information_schema','mysql')) AA ) A,
(SELECT 2 PowerOf1024) B;
මෙය ඔබගේ වර්තමාන දත්ත කට්ටලය අනුව MyISAM යතුරු හැඹිලිය සඳහා නිර්දේශිත සැකසුම ( key_buffer_size ) ලබා දෙනු ඇත ( විමසුම මඟින් 4G (4096M) හි නිර්දේශය ලබා දෙනු ඇත. 32-බිට් මෙහෙයුම් පද්ධතිය සඳහා 4GB යනු සීමාවයි. 64-බිට්, 8GB සඳහා.
භාවිතා කරන ප්රධාන යාන්ත්රණය වන්නේ InnoDB ස්වාරක්ෂක තටාකයයි. එය ප්රවේශ වූ InnoDB වගු වලින් දත්ත සහ දර්ශක පිටු රඳවා ගනී. ඔබගේ InnoDB ස්වාරක්ෂක තටාකය විශාල කිරීමට, පහත විමසුම ක්රියාත්මක කරන්න:
SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size
FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables
WHERE engine='InnoDB') A,
(SELECT 2 PowerOf1024) B;
මෙය ඔබගේ වර්තමාන දත්ත කට්ටලය අනුව InnoDB ස්වාරක්ෂක තටාකයේ ( innodb_buffer_pool_size ) ප්රමාණය සඳහා නිර්දේශිත සැකසුම ලබා දෙනු ඇත.
InnoDB ලොග් ගොනු (ib_logfile0 සහ ib_logfile1) ප්රමාණය වෙනස් කිරීමට අමතක නොකරන්න. MySQL ප්රභව කේතය සියලුම InnoDB ලොග් ලිපිගොනු වල සංයුක්ත ප්රමාණයේ තොප්පිය <4G (4096M) විය යුතුය. ලොග් ලිපිගොනු දෙකක් පමණක් ලබා දී ඇති සරල බව සඳහා, ඔබට ඒවා ප්රමාණය කළ හැකි ආකාරය මෙන්න:
service mysql stop
rm /var/log/mysql/ib_logfile[01]
service mysql start
(ib_logfile0 සහ ib_logfile1 ප්රතිනිර්මාණය කර ඇත)විමසුම් දෙකම අවසානයේ ක පේළිගත විමසුම් ය
(SELECT 2 PowerOf1024)
බී
(SELECT 0 PowerOf1024)
බයිට් වල සැකසුම ලබා දෙයි(SELECT 1 PowerOf1024)
කිලෝබයිට් වල සැකසුම ලබා දෙයි(SELECT 2 PowerOf1024)
මෙගාබයිට් වල සැකසුම ලබා දෙයි(SELECT 3 PowerOf1024)
ගිගාබයිට් වල සැකසුම ලබා දෙයිසාමාන්ය බුද්ධියට ආදේශකයක් නැත. ඔබට සීමිත මතකයක්, ගබඩා එන්ජින් මිශ්රණයක් හෝ එහි සංයෝජනයක් තිබේ නම්, ඔබට විවිධ අවස්ථා සඳහා හැඩගැසීමට සිදුවේ.
විය හැකි අවස්ථා නිමක් නැත !!!
මතක තබා ගන්න, ඔබ කුමක් වෙන් කළත්, ඩීබී සම්බන්ධතා සහ මෙහෙයුම් පද්ධතිය සඳහා ප්රමාණවත් RAM ප්රමාණයක් තබන්න.
InnoDB පිරිනැමීම්:
InnoDB හි TEXT සහ BLOB හැර අනෙක් සියලුම දත්ත වලට උපරිම වශයෙන් බයිට් 8,000 ක් ලබා ගත හැකිය. MySQL 5.6 (2013 පෙබරවාරි) තෙක් සම්පූර්ණ පෙළ සුචිගත කිරීම InnoDB හි නොමැත. InnoDB දී COUNT(*)
s (විට WHERE
, GROUP BY
හෝ JOIN
පේළිය ගණන් අභ්යන්තර ගබඩා නොවන නිසා භාවිතා නොවේ) MyISAM වඩා මන්දගාමී ක්රියාත්මක කිරීම. InnoDB දත්ත සහ දර්ශක දෙකම එක් ගොනුවක ගබඩා කරයි. InnoDB දත්ත සහ දර්ශක යන දෙකම හැඹිලි කිරීමට ස්වාරක්ෂක තටාකයක් භාවිතා කරයි.
MyISAM ඉදිරිපත් කරයි:
COUNT(*)
s (විට WHERE
, GROUP BY
හෝ JOIN
භාවිතා නොවේ)MyISAM සතුව වගු මට්ටමේ අගුලු ඇත, නමුත් පේළි මට්ටමේ අගුළු නොමැත. ගනුදෙනු නොමැත. ස්වයංක්රීය බිඳවැටීම් ප්රතිසාධනයක් නොමැත, නමුත් එය අළුත්වැඩියා වගු ක්රියාකාරිත්වය සපයයි. විදේශීය යතුරු අවහිරතා නොමැත. InnoDB වගු හා සසඳන විට MyISAM වගු සාමාන්යයෙන් තැටියේ ප්රමාණයට වඩා සංයුක්ත වේ. අවශ්ය නම් myisampack සමඟ සම්පීඩනය කිරීමෙන් MyISAM වගු ප්රමාණයෙන් තව දුරටත් අඩු කළ හැකි නමුත් කියවීමට පමණි. MyISAM දර්ශක එක් ගොනුවක සහ දත්ත තවත් ගොනුවක ගබඩා කරයි. MyISAM දර්ශක හැඹිලි සඳහා යතුරු බෆර භාවිතා කරන අතර දත්ත හැඹිලි කළමනාකරණය මෙහෙයුම් පද්ධතියට තබයි.
සමස්තයක් වශයෙන් මම බොහෝ අරමුණු සඳහා InnoDB සහ විශේෂිත භාවිතයන් සඳහා පමණක් MyISAM නිර්දේශ කරමි. InnoDB දැන් නව MySQL අනුවාද වල පෙරනිමි එන්ජිම වේ.
ක්රීඩාවට ටිකක් ප්රමාදයි ... නමුත් මෙන්න මම මීට මාස කිහිපයකට පෙර ලියූ තරමක් සවිස්තරාත්මක ලිපියක් , මයිසෑම් සහ ඉනෝ ඩීබී අතර ඇති ප්රධාන වෙනස්කම් විස්තර කරමින්. කෝප්පයක් (සහ සමහර විට බිස්කට් එකක්) අරගෙන විනෝද වන්න.
MyISAM සහ InnoDB අතර ඇති ප්රධාන වෙනස වන්නේ යොමු කිරීමේ අඛණ්ඩතාව සහ ගනුදෙනු ය. අගුළු දැමීම, පෙරළීම සහ පූර්ණ-පෙළ සෙවීම් වැනි වෙනත් වෙනසක් ද ඇත.
ආශ්රිත අඛණ්ඩතාව වගු අතර සම්බන්ධතා ස්ථාවරව පවතින බව සහතික කරයි. වඩාත් නිශ්චිතවම, මෙයින් අදහස් වන්නේ වගුවකට (උදා: ලැයිස්තුගත කිරීම්) විදේශීය යතුරක් (උදා: නිෂ්පාදන හැඳුනුම්පත) වෙනත් වගුවකට යොමු කරන විට (උදා: නිෂ්පාදන), පෙන්වා ඇති වගුවට යාවත්කාලීන කිරීම් හෝ මකාදැමීම් සිදු වූ විට, මෙම වෙනස්කම් සම්බන්ධකයට සම්බන්ධ වේ වගුව. අපගේ උදාහරණයේ දී, නිෂ්පාදනයක් නැවත නම් කළහොත්, සම්බන්ධක වගුවේ විදේශීය යතුරු ද යාවත්කාලීන වේ; 'නිෂ්පාදන' වගුවෙන් නිෂ්පාදනයක් මකා දැමුවහොත්, මකාදැමූ ප්රවේශයට යොමු වන ඕනෑම ලැයිස්තුගත කිරීමක් මකා දැමෙනු ඇත. තවද, ඕනෑම නව ලැයිස්තුගත කිරීමකට එම විදේශීය යතුර වලංගු, පවතින ප්රවේශයකට යොමු විය යුතුය.
InnoDB යනු සාපේක්ෂ DBMS (RDBMS) වන අතර එමඟින් යොමු යොමු අඛණ්ඩතාව ඇති අතර MyISAM එසේ නොවේ.
SELECT, INSERT, UPDATE සහ DELETE වැනි දත්ත හැසිරවීමේ භාෂා (DML) ප්රකාශ භාවිතා කරමින් වගුවක දත්ත කළමනාකරණය කෙරේ. ගනුදෙනු කණ්ඩායමක් ඩීඑම්එල් ප්රකාශ දෙකක් හෝ වැඩි ගණනක් එක වැඩ ඒකකයකට එකතු කරයි, එබැවින් එක්කෝ මුළු ඒකකයම යෙදේ, නැතහොත් ඒ කිසිවක් නොවේ.
InnoDB සහාය දෙන අතර MyISAM ගනුදෙනු සඳහා සහාය නොදක්වයි.
MyISAM වගුවක් භාවිතා කරන විට මෙහෙයුමකට බාධා ඇති වුවහොත්, මෙහෙයුම වහාම අත්හිටවනු ලබන අතර, බලපෑම අවසන් වූ පේළි (හෝ එක් එක් පේළියේ දත්ත පවා) බලපායි.
InnoDB වගුවක් භාවිතා කරන විට මෙහෙයුමකට බාධා ඇති වුවහොත්, එය පරමාණුකතාව ඇති ගනුදෙනු භාවිතා කරන හෙයින්, කිසිදු ගනුදෙනුවක් සිදු නොවන බැවින්, සම්පූර්ණ කිරීමට නොගිය ඕනෑම ගනුදෙනුවක් බලාත්මක නොවේ.
විමසුමක් MyISAM වගුවකට එරෙහිව ක්රියාත්මක වන විට, එය විමසන මුළු වගුවම අගුළු දමා ඇත. මෙයින් අදහස් කරන්නේ පසුකාලීන විමසීම් ක්රියාත්මක වන්නේ වත්මන් ප්රශ්නය අවසන් වූ පසුව පමණක් බවයි. ඔබ විශාල වගුවක් කියවනවා නම් සහ / හෝ නිතර කියවීමේ හා ලිවීමේ මෙහෙයුම් තිබේ නම්, මෙයින් අදහස් කරන්නේ විමසීම්වල විශාල පසුබෑමකි.
InnoDB වගුවකට එරෙහිව විමසුමක් ක්රියාත්මක වන විට, සම්බන්ධ වී ඇති පේළි (ය) පමණක් අගුළු දමා ඇති අතර, CRUD මෙහෙයුම් සඳහා ඉතිරි වගුව ඉතිරිව පවතී. මෙයින් අදහස් කරන්නේ විමසුම් එකම පේළියක් භාවිතා නොකරන්නේ නම් එකවර එකම වගුවක ධාවනය කළ හැකි බවයි.
InnoDB හි මෙම අංගය සමගාමී මුදල් ලෙස හැඳින්වේ. සමගාමී මුදල් තරම් විශාල, තෝරාගත් වගු පරාසයකට අදාළ වන විශාල අඩුපාඩුවක් ඇත, එහි කර්නල් නූල් අතර මාරුවීමේ පොදු කාර්යයක් ඇති අතර, සේවාදායකය නතර වීම වැළැක්වීම සඳහා ඔබ කර්නල් නූල් සඳහා සීමාවක් නියම කළ යුතුය. .
ඔබ MyISAM හි මෙහෙයුමක් ක්රියාත්මක කරන විට, වෙනස්කම් සකසා ඇත; InnoDB හි, එම වෙනස්කම් නැවත පෙරළා දැමිය හැකිය. ගනුදෙනු පාලනය කිරීම සඳහා භාවිතා කරන වඩාත් පොදු විධානයන් වන්නේ COMMIT, ROLLBACK සහ SAVEPOINT ය. 1. COMMIT - ඔබට බහුවිධ ඩීඑම්එල් මෙහෙයුම් ලිවිය හැකිය, නමුත් වෙනස්කම් සුරැකෙන්නේ කොමිට් එකක් කළ විට පමණි 2. රෝල්බැක් - ඔබට තවමත් සිදු කර නොමැති ඕනෑම මෙහෙයුම් ඉවත දැමිය හැකිය 3. සුරැකුම් - ලැයිස්තුවේ ලක්ෂ්යයක් දක්වයි ROLLBACK මෙහෙයුමකට ආපසු යා හැකි මෙහෙයුම්
MyISAM කිසිදු දත්ත අඛණ්ඩතාවයක් ඉදිරිපත් නොකරයි - දෘඩාංග අසමත්වීම්, අපිරිසිදු වසා දැමීම් සහ අවලංගු කරන ලද මෙහෙයුම් මගින් දත්ත දූෂිත වීමට හේතු වේ. මේ සඳහා දර්ශක සහ වගු සම්පූර්ණයෙන් අළුත්වැඩියා කිරීම හෝ නැවත ගොඩනැඟීම අවශ්ය වේ.
InnoDB, අනෙක් අතට, දූෂණ වැළැක්වීම සඳහා ගනුදෙනු ලොගයක්, ද්වි-ලිවීමේ බෆරයක් සහ ස්වයංක්රීය චෙක්පත් කිරීම සහ වලංගුකරණය භාවිතා කරයි. InnoDB කිසියම් වෙනසක් කිරීමට පෙර, එය ගනුදෙනු කිරීමට පෙර දත්ත ibdata1 නමින් පද්ධති වගු ගොනුවකට වාර්තා කරයි. බිඳවැටීමක් සිදුවුවහොත්, එම ල .ු-සටහන් නැවත ධාවනය කිරීමෙන් InnoDB ස්වයංක්රීයව සොයා ගනී.
MySQL අනුවාදය 5.6.4 තෙක් InnoDB FULLTEXT සුචිගත කිරීම සඳහා සහය නොදක්වයි. මෙම ලිපිය ලියන විට, බොහෝ හවුල් සත්කාරක සේවා සපයන්නන්ගේ MySQL අනුවාදය තවමත් 5.6.4 ට වඩා පහළින් පවතී, එයින් අදහස් වන්නේ InnoDB වගු සඳහා FULLTEXT සුචිගත කිරීම සහාය නොදක්වන බවයි.
කෙසේ වෙතත්, මෙය MyISAM භාවිතා කිරීමට වලංගු හේතුවක් නොවේ. MySQL හි යාවත්කාලීන අනුවාදයන්ට සහය දක්වන සත්කාරක සැපයුම්කරුවෙකු වෙත වෙනස් වීම වඩාත් සුදුසුය. FULLTEXT සුචිගත කිරීම භාවිතා කරන MyISAM වගුවක් InnoDB වගුවකට පරිවර්තනය කළ නොහැකි බව නොවේ.
අවසාන වශයෙන්, InnoDB ඔබේ සුපුරුදු ගබඩා එන්ජිම විය යුතුය. නිශ්චිත අවශ්යතාවයක් ඉටු කරන විට MyISAM හෝ වෙනත් දත්ත වර්ග තෝරන්න.
තවත් එක් දෙයක්: ගොනු පද්ධතියේ සැණින් ඡායාරූපයක් ගැනීමෙන් ඔබට InnoDB වගු උපස්ථ කළ හැකිය. MyISAM උපස්ථ කිරීම සඳහා mysqldump භාවිතා කිරීම අවශ්ය වන අතර එය ස්ථාවර බව සහතික නොවේ (උදා: ඔබ දෙමව්පියන්ට සහ ළමා වගුවකට ඇතුළු කළහොත්, ඔබේ උපස්ථයේ ඇත්තේ ළමා වගුවේ පේළිය පමණි).
මූලික වශයෙන්, ඔබ සතුව දත්තවල තවත් පිටපතක් තිබේ නම් සහ එය MySQL තුළ පමණක් හැඹිලිගත කරන්නේ නම්, එය PHP වෙබ් අඩවියකින් සම්මත ප්රවේශයකට ඉඩ දීම සඳහා, එවිට MyISAM හොඳයි (එනම් එය පැතලි CSV ගොනුවකට වඩා හොඳය. සමගාමී ප්රවේශය). දත්ත සමුදාය යනු දත්තවල සත්ය “ප්රධාන පිටපත” නම්, ඔබ කරන්නේ INSERT
සහ UPDATE
භාවිතා කරන්නන්ගෙන් සත්ය දත්ත භාවිතා කරන්නේ නම් , InnoDB හැර වෙනත් දෙයක් භාවිතා කිරීම මෝඩකමකි, ඕනෑම ආකාරයක පරිමාණයකින් MyISAM විශ්වාස කළ නොහැකි සහ කළමනාකරණය කිරීමට අපහසුය, ඔබ 'කරන්නේ වරදී myisamchk
ඕනෑම කාර්ය සාධන වාසි අහිමිකරන, කාලය භාගයක් ...
(මගේ පෞද්ගලික අත්දැකීම: MyISAM හි ටෙරාබයිට් 2 DB).
මගේ අත්දැකීම් අනුව, වඩාත්ම වැදගත් වෙනස වන්නේ එක් එක් එන්ජිම අගුලු දැමීම හසුරුවන ආකාරයයි. InnoDB පේළි අගුළු දැමීම භාවිතා කරන අතර MyISAM මේස අගුළු දැමීම භාවිතා කරයි. රීතියක් ලෙස, මම බර වගු ලිවීම සඳහා InnoDB සහ බර වගු කියවීම සඳහා MyISAM භාවිතා කරමි.
අනෙකුත් වැදගත් වෙනස්කම් වලට ඇතුළත් වන්නේ:
FULLTEXT
සහ SPATIAL
. InnoDB සඳහා යහපත් දෙකම read- හා ලිවීම්-අධික බර.
මම MySQL සඳහා 'පෙරනිමි' වගු තේරීමක් ලෙස MyISAM බැලීමට නැඹුරු වෙමි, එබැවින් InnoDB හි බොහෝ පරිශීලකයින් සඳහා ඇති වෙනස්කම් මම පෙන්වා දෙමි
මයිසම්
MYISAM විසින් වගු මට්ටමේ අගුලු දැමීම, FULLTEXT සෙවීම සපයයි. සියලුම ගබඩා එන්ජින් හැසිරවීමේ වඩාත් නම්යශීලී AUTO_INCREMENTED තීරුව MYISAM සතුව ඇත. මයිසම් ගනුදෙනු සඳහා සහාය නොදක්වයි.
INNODB
INNODB යනු ගනුදෙනු ආරක්ෂිත ගබඩා එන්ජිමකි. INNODB හි කැපවීම, පෙරළීම සහ බිඳවැටීම් ප්රතිසාධන හැකියාවන් ඇත. INNODB විදේශීය යතුරු යොමු කිරීමේ අඛණ්ඩතාවයට සහය දක්වයි.
MySQL 5.6 වෙනස්කම් ඇතුළත් වේ
INNODB ගබඩා එන්ජිම:
එබැවින්, MyISAM
ඔබ දැනටමත් 5.6 දක්වා උත්ශ්රේණිගත කර ඇත්නම් එන්ජිම භාවිතා කිරීමේ කිසිදු තේරුමක් නැත , එසේ නොවේ නම් MySQL 5.6 වෙත යාවත්කාලීන කිරීමට බලා නොසිටින්න.
MyISAM යනු MySQL සඳහා ගබඩා එන්ජිමකි. MySQL 5.5 ට පෙර එය MySQL සඳහා පෙරනිමි ගබඩා එන්ජිම විය. එය පැරණි ISAM ගබඩා එන්ජිම මත පදනම් වේ. අධික කියවීම් මෙහෙයුම් සහිත පරිසරයන් සඳහා MyISAM ප්රශස්තිකරණය කර ඇති අතර, ලිවීම් කිහිපයක් හෝ කිසිවක් නැත. MyISAM වේගයෙන් කියවීමට ඉඩ දෙන හේතුව එහි දර්ශකවල ව්යුහයයි: සෑම ප්රවේශයක්ම දත්ත ගොනුවේ වාර්තාවකට යොමු කරයි, සහ ගොනුවේ ආරම්භයේ සිටම දර්ශකය ඕෆ්සෙට් වේ. මේ ආකාරයෙන් වාර්තා ඉක්මනින් කියවිය හැකිය, විශේෂයෙන් ආකෘතිය ස්ථාවර වූ විට. මේ අනුව, පේළි නියත දිගකින් යුක්ත වේ. කෙනෙකුට MyISAM ට වැඩි කැමැත්තක් දැක්විය හැකි සාමාන්ය ප්රදේශයක් වන්නේ දත්ත ගබඩාවයි, මන්ද එයට ඉතා විශාල වගු පිළිබඳ විමසීම් ඇතුළත් වන අතර දත්ත සමුදාය භාවිතයේ නොමැති විට (සාමාන්යයෙන් රාත්රිය වන විට) එවැනි වගු යාවත්කාලීන කිරීම සිදු කෙරේ. දත්ත ගොනුවේ අවසානයට නව පේළි එකතු කර ඇති නිසා ඇතුළු කිරීම් ද පහසුය. කෙසේවෙතත්, මකාදැමීම සහ යාවත්කාලීන කිරීම වඩාත් ගැටළු සහගත ය: මකාදැමීම් හිස් ඉඩක් තැබිය යුතුය, නැතහොත් පේළි වල ඕෆ්සෙට් වෙනස් වනු ඇත; පේළි වල දිග කෙටි වන බැවින් යාවත්කාලීන කිරීම් සඳහා ද එයම වේ; යාවත්කාලීනය මඟින් පේළිය දිගු කරයි නම්, පේළිය කැබලි වී ඇත. පේළි අවලංගු කිරීමට සහ හිස් ඉඩක් ලබා ගැනීමට,OPTIMIZE TABLE
විධානය ක්රියාත්මක කළ යුතුය. මෙම සරල යාන්ත්රණය නිසා සාමාන්යයෙන් MyISAM දර්ශක සංඛ්යාලේඛන තරමක් නිවැරදි ය. MyISAM හි අනෙකුත් ප්රධාන අඩුපාඩු වන්නේ ගනුදෙනු සහාය සහ විදේශීය යතුරු නොමැති වීමයි.
InnoDB යනු MySQL සඳහා ගබඩා එන්ජිමකි. MySQL 5.5 සහ පසුව එය පෙරනිමියෙන් භාවිතා කරන්න. එය විදේශීය යතුරු ආධාරක (ප්රකාශන යොමු කිරීමේ අඛණ්ඩතාව) සමඟ සම්මත ACID අනුකූල ගනුදෙනු විශේෂාංග සපයයි. එය SQL සහ XA ගනුදෙනු, FULLTEXT
මේස අවකාශ , දර්ශක සහ අවකාශීය මෙහෙයුම් යන දෙකම OpenGIS ප්රමිතියට අනුව ක්රියාත්මක කරයි. MySQL AB විසින් බෙදා හරින ලද බොහෝ ද්විමයන්හි එය ප්රමිතියක් ලෙස ඇතුළත් කර ඇති අතර, ව්යතිරේකය සමහර OEM අනුවාදයන් වේ. මෘදුකාංගය ඔරකල් සංස්ථාව විසින් ද්විත්ව බලපත්ර ලබා ඇත; එය බෙදා හරිනු ලබන්නේ ග්නූ පොදු මහජන බලපත්රය යටතේ වන අතර හිමිකාර මෘදුකාංගවල ඉනෝ ඩීබී ඒකාබද්ධ කිරීමට කැමති පාර්ශවයන්ට බලපත්ර ලබා දිය හැකිය.
මාරියා ඩීබී හි ආරියා නම් ගබඩා එන්ජිමක් ඇති අතර එය "මයිසාම් වලට කඩාවැටෙන ආරක්ෂිත විකල්පයක්" ලෙස විස්තර කෙරේ. මාරියා ඩීබී සහ පර්කෝනා සර්වර් පෙරනිමියෙන් එක්ස්ට්රා ඩීබී නමින් ඉනෝ ඩීබී දෙබලක භාවිතා කරයි. එක්ස්ට්රාඩ්බී නඩත්තු කරන්නේ පර්කෝනා විසිනි. Oracle InnoDB හි වෙනස්කම් නිතිපතා XtraDB වෙත ආනයනය කරනු ලබන අතර සමහර දෝෂ නිවැරදි කිරීම් සහ අමතර විශේෂාංග එකතු කරනු ලැබේ.