MYISAMCHK(1) MariaDB Database System MYISAMCHK(1)

myisamchk - ابزار نگهداری جدول‌های MyISAM

myisamchk [options] tbl_name ...

ابزار myisamchk اطلاعاتی را درباره جدول‌های پایگاه‌داده به دست می‌آورد یا آن‌ها را بررسی، تعمیر یا بهینه‌سازی می‌کند. myisamchk با جدول‌های MyISAM کار می‌کند (جدول‌هایی که برای ذخیره داده‌ها و نمایه‌ها دارای فایل‌های .MYD و .MYI هستند).

استفاده از myisamchk برای جدول‌های افرازبندی‌شده (partitioned) پشتیبانی نمی‌شود.


احتیاط

بهتر است پیش از انجام عملیات تعمیر جدول، یک نسخه پشتیبان از آن تهیه کنید؛ تحت شرایط خاصی ممکن است این عملیات باعث از دست رفتن داده‌ها شود. خطاهای سامانه فایل از جمله این موارد احتمالی هستند.

ابزار myisamchk را به این صورت فراخوانی کنید:

shell> myisamchk [options] tbl_name ...

بخش options مشخص می‌کند که می‌خواهید myisamchk چه کاری انجام دهد. این گزینه‌ها در بخش‌های بعدی توضیح داده شده‌اند. همچنین می‌توانید با اجرای myisamchk --help فهرستی از گزینه‌ها را مشاهده کنید.

بدون مشخص کردن هیچ گزینه‌ای، myisamchk صرفاً به عنوان عملیات پیش‌فرض، جدول شما را بررسی می‌کند. برای دریافت اطلاعات بیشتر یا درخواست از myisamchk جهت انجام اقدامات اصلاحی، گزینه‌ها را مطابق توضیحات بخش‌های بعد مشخص کنید.

مقدار tbl_name جدول پایگاه‌داده‌ای است که می‌خواهید بررسی یا تعمیر کنید. اگر myisamchk را در جایی غیر از دایرکتوری پایگاه‌داده اجرا می‌کنید، باید مسیر دایرکتوری پایگاه‌داده را مشخص کنید، زیرا myisamchk اطلاعی از مکان قرارگیری پایگاه‌داده ندارد. در واقع، برای myisamchk اهمیتی ندارد که فایل‌های مورد نظر حتماً در یک دایرکتوری پایگاه‌داده باشند. می‌توانید فایل‌های مربوط به یک جدول را در مکان دیگری کپی کرده و عملیات بازیابی را روی آن‌ها انجام دهید.

در صورت تمایل می‌توانید نام چندین جدول را در خط فرمان myisamchk قید کنید. همچنین می‌توانید با مشخص کردن نام فایل نمایهٔ یک جدول (فایلی با پسوند .MYI)، آن جدول را تعیین کنید. این کار به شما امکان می‌دهد تا با استفاده از الگوی *.MYI تمام جدول‌های موجود در یک دایرکتوری را مشخص کنید. برای نمونه، اگر در دایرکتوری پایگاه‌داده هستید، می‌توانید تمام جدول‌های MyISAM موجود در آن را به این شکل بررسی کنید:

shell> myisamchk *.MYI

اگر در دایرکتوری پایگاه‌داده نیستید، می‌توانید با مشخص کردن مسیر دایرکتوری، تمام جدول‌های موجود در آن را بررسی کنید:

shell> myisamchk /path/to/database_dir/*.MYI

حتی می‌توانید با استفاده از نویسه عام در مسیر دایرکتوری داده‌های MariaDB، تمام جدول‌ها را در تمام پایگاه‌های داده بررسی کنید:

shell> myisamchk /path/to/datadir/*/*.MYI

روش توصیه‌شده برای بررسی سریع تمام جدول‌های MyISAM به این صورت است:

shell> myisamchk --silent --fast /path/to/datadir/*/*.MYI

اگر می‌خواهید تمام جدول‌های MyISAM را بررسی کرده و جدول‌های آسیب‌دیده را تعمیر کنید، می‌توانید از دستور زیر استفاده کنید:

shell> myisamchk --silent --force --fast --update-state \
          --key_buffer_size=64M --sort_buffer_size=64M \
          --read_buffer_size=1M --write_buffer_size=1M \
          /path/to/datadir/*/*.MYI

این دستور فرض می‌کند که بیش از 64MB حافظه آزاد در اختیار دارید. برای اطلاعات بیشتر درباره تخصیص حافظه در myisamchk، بخش “MYISAMCHK MEMORY USAGE” را ببینید.


مهم

باید اطمینان حاصل کنید هنگام اجرای myisamchk، هیچ برنامه دیگری از جدول‌ها استفاده نمی‌کند. موثرترین روش برای انجام این کار، متوقف کردن سرور MariaDB هنگام اجرای myisamchk یا قفل کردن تمام جدول‌هایی است که myisamchk روی آن‌ها اجرا می‌شود..PP در غیر این صورت، هنگامی که myisamchk را اجرا می‌کنید، ممکن است پیام خطای زیر را نمایش دهد:

warning: clients are using or haven't closed the table properly

این بدان معناست که شما در حال تلاش برای بررسی جدولی هستید که توسط برنامه دیگری (مانند سرور mariadbd) به‌روزرسانی شده که هنوز فایل را نبسته است یا بدون بستن درست فایل متوقف شده است؛ این وضعیت گاهی می‌تواند منجر به خرابی یک یا چند جدول MyISAM شود.

اگر mariadbd در حال اجرا است، باید آن را با استفاده از FLUSH TABLES وادار کنید تا هرگونه تغییرات جدول را که هنوز در حافظه میان‌گیر (بافر) شده‌اند تخلیه کند. سپس باید اطمینان حاصل کنید که هنگام اجرای myisamchk هیچ کاربری از جدول‌ها استفاده نمی‌کند.

با این حال، ساده‌ترین راه برای جلوگیری از این مشکل، استفاده از CHECK TABLE به جای myisamchk برای بررسی جدول‌ها است.

myisamchk از گزینه‌های زیر پشتیبانی می‌کند، که می‌توانند در خط فرمان یا در گروه [myisamchk] فایل پیکربندی مشخص شوند.

گزینه‌های شرح داده شده در این بخش را می‌توان برای هر نوع عملیات نگهداری جدول که توسط myisamchk انجام می‌شود به کار برد. بخش‌های پس از این، گزینه‌هایی را شرح می‌دهند که تنها به عملیات‌های خاصی مانند بررسی یا تعمیر جدول مربوط می‌شوند.

•--help, -?

نمایش پیام راهنما و خروج. گزینه‌ها بر پایه نوع عملیات گروه‌بندی شده‌اند.

•--HELP, -H

نمایش پیام راهنما و خروج. گزینه‌ها در یک فهرست واحد ارائه می‌شوند.

•--debug=debug_options, -# debug_options

نوشتن گزارش اشکال‌زدایی. یک رشته متداول برای debug_options به صورت 'd:t:o,file_name' است. مقدار پیش‌فرض 'd:t:o,/tmp/myisamchk.trace' است.

•--silent, -s

حالت بی‌صدا. نوشتن خروجی تنها هنگامی که خطا رخ می‌دهد. می‌توانید از -s دو بار (-ss) استفاده کنید تا myisamchk بسیار ساکت عمل کند.

•--verbose, -v

حالت پرگو. چاپ اطلاعات بیشتر درباره کاری که برنامه انجام می‌دهد. این گزینه می‌تواند همراه با -d و -e استفاده شود. برای دریافت خروجی حتی بیشتر، از -v به دفعات (-vv، -vvv) استفاده کنید.

•--version, -V

نمایش اطلاعات نسخه و خروج.

•--wait, -w

به جای پایان دادن همراه با خطا در صورتی که جدول قفل است، پیش از ادامه منتظر بمانید تا قفل جدول باز شود. اگر در حال اجرای mariadbd با قفل‌گذاری خارجی غیرفعال هستید، جدول تنها توسط یک دستور دیگر از myisamchk می‌تواند قفل شود.

•--print-defaults.sp چاپ فهرست آرگومان‌های برنامه و خروج.
•--no-defaults

گزینه‌های پیش‌فرض از هیچ فایل گزینه‌ای خوانده نشوند.

•--defaults-file=#

گزینه‌های پیش‌فرض تنها از فایل داده‌شده خوانده شوند.

•--defaults-extra-file=#

این فایل پس از خوانده شدن فایل‌های سراسری خوانده شود.

شما همچنین می‌توانید متغیرهای زیر را با استفاده از نحو --var_name=value تنظیم کنید:

متغیر مقدار پیش‌فرض
decode_bits 9
ft_max_word_len وابسته به نسخه
ft_min_word_len 4
ft_stopword_file فهرست توکار
key_buffer_size 523264
key_cache_block_size 1024
myisam_block_size 1024
read_buffer_size 262136
sort_buffer_size 2097144
sort_key_blocks 16
stats_method nulls_unequal
write_buffer_size 262136

متغیرهای ممکن برای myisamchk و مقادیر پیش‌فرض آن‌ها را می‌توان با دستور myisamchk --help بررسی کرد:

sort_buffer_size زمانی استفاده می‌شود که کلیدها با مرتب‌سازی کلیدها بازسازی شوند، که حالت عادی در هنگام استفاده از --recover است.

key_buffer_size زمانی استفاده می‌شود که در حال بررسی جدول با --extend-check هستید، یا هنگامی که کلیدها با درج سطر‌به‌سطر در جدول تعمیر می‌شوند (مانند درج‌های عادی). بازسازی از طریق بافر کلید در موارد زیر استفاده می‌شود:

•از --safe-recover استفاده کنید.
•فایل‌های موقت موردنیاز برای مرتب‌سازی کلیدها، بیش از دو برابر بزرگ‌تر از زمانی باشند که فایل کلید به‌طور مستقیم ایجاد می‌شود. این حالت اغلب زمانی رخ می‌دهد که مقادیر کلید بزرگی برای ستون‌های CHAR، VARCHAR یا TEXT داشته باشید، زیرا عملیات مرتب‌سازی در حین پیشرفت نیاز به ذخیره کامل مقادیر کلید دارد. اگر فضای موقت زیادی دارید و می‌توانید myisamchk را وادار به تعمیر از طریق مرتب‌سازی کنید، می‌توانید از گزینه --sort-recover استفاده کنید. تعمیر از طریق بافر کلید (key buffer)، فضای دیسک بسیار کمتری نسبت به استفاده از مرتب‌سازی (sorting) اشغال می‌کند، اما بسیار کندتر است.

اگر خواهان تعمیر سریع‌تری هستید، متغیرهای key_buffer_size و sort_buffer_size را روی حدود ۲۵٪ از حافظه در دسترس خود تنظیم کنید. می‌توانید هر دو متغیر را روی مقادیر بزرگی قرار دهید، زیرا در هر زمان تنها یکی از آن‌ها استفاده می‌شود.

متغیر myisam_block_size اندازه‌ای است که برای بلوک‌های ایندکس استفاده می‌شود.

متغیر stats_method بر نحوه رفتار با مقادیر NULL برای جمع‌آوری آمار ایندکس در هنگام تعیین گزینه --analyze اثر می‌گذارد. این متغیر مانند متغیر سیستمی myisam_stats_method عمل می‌کند. برای اطلاعات بیشتر، توضیحات myisam_stats_method را در Section 5.1.4, “Server System Variables” و Section 7.4.7, “MyISAM Index Statistics Collection” ببینید.

متغیرهای ft_min_word_len و ft_max_word_len حداقل و حداکثر طول کلمه را برای ایندکس‌های FULLTEXT مشخص می‌کنند. ft_stopword_file نام فایل کلمات توقف (stopword) را مشخص می‌کند. این موارد باید تحت شرایط زیر تنظیم شوند.

اگر از myisamchk برای انجام عملیاتی استفاده کنید که ایندکس‌های جدول را تغییر می‌دهد (مانند repair یا analyze)، ایندکس‌های FULLTEXT با استفاده از مقادیر پیش‌فرض پارامترهای تمام‌متن برای حداقل و حداکثر طول کلمه و فایل stopword بازسازی می‌شوند، مگر اینکه خلاف آن را تعیین کنید. این موضوع می‌تواند منجر به شکست پرس‌وجوها شود.

این مشکل از آنجا ناشی می‌شود که این پارامترها فقط برای سرور شناخته‌شده هستند. آن‌ها در فایل‌های ایندکس MyISAM ذخیره نمی‌شوند. برای جلوگیری از این مشکل، در صورتی که حداقل یا حداکثر طول کلمه یا فایل stopword را در سرور تغییر داده‌اید، همان مقادیر ft_min_word_len، ft_max_word_len و ft_stopword_file را به myisamchk بدهید که برای mariadbd استفاده می‌کنید. برای مثال، اگر حداقل طول کلمه را برابر با ۳ قرار داده‌اید، می‌توانید یک جدول را با myisamchk به این صورت تعمیر کنید:

shell> myisamchk --recover --ft_min_word_len=3 tbl_name.MYI

برای اطمینان از اینکه myisamchk و سرور از مقادیر یکسانی برای پارامترهای تمام‌متن استفاده می‌کنند، می‌توانید هر کدام را در هر دو بخش [mariadbd] و [myisamchk] از یک فایل تنظیمات (option file) قرار دهید:

[mariadbd]
ft_min_word_len=3
[myisamchk]
ft_min_word_len=3

یک جایگزین برای استفاده از myisamchk استفاده از عبارت‌های REPAIR TABLE، ANALYZE TABLE، OPTIMIZE TABLE یا ALTER TABLE است. این عبارت‌ها توسط سرور انجام می‌شوند که مقادیر مناسب پارامترهای تمام‌متن را برای استفاده می‌داند..SH "گزینه‌های بررسی MYISAMCHK (MYISAMCHK CHECK OPTIONS)"

دستور myisamchk از گزینه‌های زیر برای عملیات بررسی جدول پشتیبانی می‌کند:

•--check, -c

بررسی جدول برای یافتن خطاها. اگر هیچ گزینه‌ای را برای تعیین صریح نوع عملیات مشخص نکنید، این عملیات پیش‌فرض است.

•--check-only-changed, -C

فقط جدول‌هایی را بررسی می‌کند که از زمان آخرین بررسی تغییر کرده‌اند.

•--extend-check, -e

جدول را بسیار دقیق و کامل بررسی می‌کند. اگر جدول اندیس‌های زیادی داشته باشد، این کار بسیار کُند خواهد بود. این گزینه فقط باید در موارد بحرانی استفاده شود. در حالت عادی، myisamchk یا myisamchk --medium-check باید بتوانند وجود هرگونه خطا در جدول را مشخص کنند.

اگر از --extend-check استفاده می‌کنید و حافظهٔ زیادی در اختیار دارید، تنظیم متغیر key_buffer_size روی مقداری بزرگ، به اجرای سریع‌تر عملیات تعمیر کمک می‌کند.

برای شرح قالب خروجی، بخش “MYISAMCHK TABLE INFORMATION” را ببینید.

•--fast, -F

فقط جدول‌هایی را بررسی می‌کند که به‌درستی بسته نشده‌اند.

•--force, -f

در صورتی که myisamchk خطایی در جدول پیدا کند، عملیات تعمیر را به‌طور خودکار انجام می‌دهد. نوع تعمیر همان موردی است که با گزینهٔ --recover یا -r مشخص می‌شود. وضعیت‌ها نیز مانند گزینهٔ --update-state به‌روزرسانی خواهند شد.

•--information, -i

چاپ آمار و اطلاعات توصیفی دربارهٔ جدولی که بررسی می‌شود.

•--medium-check, -m

بررسی‌ای انجام می‌دهد که از عملیات --extend-check سریع‌تر است. این گزینه فقط 99.99% از تمام خطاها را پیدا می‌کند که در اکثر موارد کافی است.

•--read-only, -T

جدول را به‌عنوان بررسی‌شده علامت‌گذاری نمی‌کند. این گزینه زمانی مفید است که از myisamchk برای بررسی جدولی استفاده می‌کنید که توسط برنامهٔ دیگری بدون قفل‌گذاری در حال استفاده است، مانند mariadbd هنگامی که با غیرفعال بودن قفل‌گذاری خارجی (external locking) اجرا شده باشد.

•--update-state, -U

اطلاعاتی را در فایل .MYI ذخیره می‌کند تا مشخص شود چه زمانی جدول بررسی شده و آیا دچار خرابی (crash) شده است یا خیر. از این گزینه باید برای بهره‌مندی کامل از گزینهٔ --check-only-changed استفاده شود، اما اگر سرور mariadbd در حال استفاده از جدول است و آن را با قفل‌گذاری خارجیِ غیرفعال اجرا کرده‌اید، نباید این گزینه را به کار ببرید.

دستور myisamchk از گزینه‌های زیر برای عملیات تعمیر جدول پشتیبانی می‌کند (عملیاتی که هنگام تعیین گزینه‌ای مانند --recover یا --safe-recover انجام می‌شوند):

•--backup, -B

یک نسخهٔ پشتیبان از فایل .MYD به صورت file_name-time.BAK تهیه می‌کند.

•--character-sets-dir=path

دایرکتوری محل نصب مجموعه‌های نویسه (character sets).

•--correct-checksum

اطلاعات چک‌سام (checksum) را برای جدول اصلاح می‌کند.

•--create-missing-keys

کلیدهای ناموجود را ایجاد می‌کند. با این فرض که فایل داده صحیح است و تعداد سطرهای ذخیره‌شده در فایل ایندکس نیز درست است. گزینهٔ --quick را فعال می‌کند.

•--data-file-length=len, -D len

حداکثر طول فایل داده (هنگام ایجاد مجدد فایل داده زمانی که “پر” است).

•--extend-check, -e

تعمیری انجام می‌دهد که تلاش می‌کند هر سطر ممکن را از فایل داده بازیابی کند. به‌طور معمول، این کار سطرهای نامعتبر و زائد (garbage) زیادی را نیز پیدا می‌کند. از این گزینه استفاده نکنید مگر آنکه چارهٔ دیگری نداشته باشید.

برای شرح قالب خروجی، به بخش “MYISAMCHK TABLE INFORMATION” مراجعه کنید.

•--force, -f

به جای لغو عملیات، فایل‌های واسط و موقت قدیمی (فایل‌هایی با نام‌هایی مانند tbl_name.TMD) را بازنویسی می‌کند. یک گزینهٔ --force دیگر اضافه کنید تا از خطاهای 'myisam_sort_buffer_size is too small' جلوگیری شود. در این حالت تلاش می‌شود تعمیر با مقدار داده‌شدهٔ myisam_sort_buffer_size انجام شود و بافرهای مدیریتی به تعداد مورد نیاز به‌صورت پویا تخصیص یابند.

•--keys-used=val, -k val

برای myisamchk، مقدار این گزینه یک مقدار بیتی است که مشخص می‌کند کدام ایندکس‌ها به‌روزرسانی شوند. هر بیت دودویی از مقدار گزینه متناظر با یک ایندکس جدول است، که در آن اولین ایندکس بیت 0 است. مقدار گزینهٔ 0 به‌روزرسانی تمام ایندکس‌ها را غیرفعال می‌کند که می‌تواند برای درج (insert) سریع‌تر داده‌ها به کار رود. ایندکس‌های غیرفعال‌شده را می‌توان با استفاده از myisamchk -r مجدداً فعال کرد.

•--max-record-length=len

اگر myisamchk نتواند حافظهٔ لازم برای نگهداری سطرهای بزرگ‌تر از طول مشخص‌شده را تخصیص دهد، از آن‌ها رد می‌شود.

•--parallel-recover, -p.sp از همان روش -r و -n استفاده می‌کند، اما تمام کلیدها را با به‌کارگیری ریسه‌های مختلف، به‌صورت موازی ایجاد می‌کند. این کد در وضعیت آزمایشی (بتا) است. مسئولیت استفاده از آن بر عهده خودتان است!
•--quick, -q

با اصلاح صرفاً فایل نمایه و نه فایل داده، تعمیر سریع‌تری انجام می‌دهد. می‌توانید این گزینه را دو بار مشخص کنید تا myisamchk را مجبور کند در صورت وجود کلیدهای تکراری، فایل داده اصلی را تغییر دهد. نکته: جدول‌هایی که فایل داده آن‌ها خراب شده است را نمی‌توان با این گزینه تعمیر کرد.

•--recover, -r

تعمیری انجام می‌دهد که تقریباً می‌تواند هر مشکلی را به جز کلیدهای یکتایی که یکتا نیستند (که خطایی بسیار نامحتمل در جدول‌های MyISAM است) برطرف کند. اگر می‌خواهید جدولی را بازیابی کنید، این نخستین گزینه‌ای است که باید امتحان کنید. تنها در صورتی باید --safe-recover را امتحان کنید که myisamchk گزارش دهد جدول با استفاده از --recover قابل بازیابی نیست. (در حالت بسیار نامحتمل که --recover شکست بخورد، فایل داده دست‌نخورده باقی می‌ماند.)

اگر حافظه زیادی در اختیار دارید، باید مقدار sort_buffer_size را افزایش دهید.

•--safe-recover, -o

تعمیری را با استفاده از یک روش بازیابی قدیمی انجام می‌دهد که تمام سطرها را به ترتیب می‌خواند و همه درخت‌های نمایه را بر اساس سطرهای پیدا شده به‌روزرسانی می‌کند. این روش یک مرتبه بزرگی کُندتر از --recover است، اما می‌تواند چند مورد بسیار نامحتمل را مدیریت کند که --recover قادر به حل آن‌ها نیست. این روش بازیابی همچنین فضای دیسک بسیار کمتری نسبت به --recover مصرف می‌کند. در حالت عادی، ابتدا باید با استفاده از --recover تعمیر را انجام دهید، و سپس تنها در صورتی که --recover شکست خورد از --safe-recover استفاده کنید.

اگر حافظه زیادی دارید، باید مقدار key_buffer_size را افزایش دهید.

•--set-collation=name

تطبیق (collation) مورد استفاده برای مرتب‌سازی نمایه‌های جدول را مشخص می‌کند. نام مجموعه نویسه (character set) از بخش نخست نام تطبیق استنباط می‌شود.

•--sort-recover, -n

برنامه myisamchk را وادار می‌کند تا برای حل و تفکیک کلیدها از مرتب‌سازی استفاده کند، حتی اگر فایل‌های موقت بسیار بزرگ شوند.

•--tmpdir=path, -t path

مسیر دایرکتوری مورد استفاده برای ذخیره‌سازی فایل‌های موقت. اگر این گزینه تنظیم نشده باشد، myisamchk از مقدار متغیر محیطی TMPDIR استفاده می‌کند. tmpdir می‌تواند روی فهرستی از مسیرهای دایرکتوری تنظیم شود که به‌صورت متوالی و چرخشی (round-robin) برای ایجاد فایل‌های موقت استفاده می‌شوند. نویسه جداکننده میان نام‌های دایرکتوری در Unix دونقطه (“:”) و در Windows، NetWare و OS/2 نقطه-ویرگول (“;”) است.

•--unpack, -u

جدولی را که با myisampack بسته‌بندی شده است، از حالت فشرده خارج می‌کند.

دستور myisamchk از گزینه‌های زیر برای اقداماتی غیر از بررسی و تعمیر جدول‌ها پشتیبانی می‌کند:

•--analyze, -a

توزیع مقادیر کلید را تحلیل می‌کند. این کار با تواناتر ساختن بهینه‌ساز پیوند (join optimizer) در انتخاب بهتر ترتیب پیوند جدول‌ها و اندیس‌هایی که باید استفاده شوند، عملکرد پیوند (join) را بهبود می‌بخشد. برای به‌دست آوردن اطلاعات درباره توزیع کلید، از دستور myisamchk --description --verbose tbl_name یا عبارت SHOW INDEX FROM tbl_name استفاده کنید.

•--block-search=offset, -b offset

رکوردی را پیدا می‌کند که بلوکِ واقع در آفست (offset) داده‌شده متعلق به آن است.

•--description, -d

اطلاعاتی توصیفی درباره جدول چاپ می‌کند. مشخص کردن گزینه --verbose به صورت یک یا دو بار، اطلاعات بیشتری تولید می‌کند. بخش “MYISAMCHK TABLE INFORMATION” را ببینید.

•--set-auto-increment[=value], -A[value]

شماره‌گذاری AUTO_INCREMENT را برای رکوردهای جدید مجبور می‌کند از مقدار داده‌شده شروع شود (یا مقداری بیشتر، در صورتی که رکوردهایی از قبل با مقادیر AUTO_INCREMENT به این بزرگی وجود داشته باشند). اگر value مشخص نشده باشد، شماره‌های AUTO_INCREMENT برای رکوردهای جدید از بزرگ‌ترین مقدار موجود در جدول به علاوه یک شروع می‌شوند.

•--sort-index, -S

بلوک‌های درخت اندیس را به ترتیب از زیاد به کم (high-low) مرتب می‌کند. این کار پویش‌ها (seeks) را بهینه‌سازی کرده و پیمایش‌های جدول (table scans) را که از اندیس‌ها استفاده می‌کنند سریع‌تر می‌سازد.

•--sort-records=N, -R N

رکوردها را بر اساس یک اندیس خاص مرتب می‌کند. این کار داده‌های شما را بسیار موضعی‌تر (localized) کرده و ممکن است به عملیات‌های SELECT مبتنی بر محدوده و ORDER BY که از این اندیس استفاده می‌کنند سرعت ببخشد. (اولین باری که از این گزینه برای مرتب‌سازی جدول استفاده می‌کنید، ممکن است بسیار کند باشد.) برای تعیین شماره‌های اندیس یک جدول، از SHOW INDEX استفاده کنید که اندیس‌های جدول را به همان ترتیبی که myisamchk می‌بیند نمایش می‌دهد. شماره‌گذاری اندیس‌ها از ۱ آغاز می‌شود.

اگر کلیدها فشرده نشده باشند (PACK_KEYS=0)، طول یکسانی دارند؛ بنابراین هنگامی که myisamchk رکوردها را مرتب کرده و جابه‌جا می‌کند، صرفاً آفست‌های رکورد را در اندیس بازنویسی می‌نماید. اگر کلیدها فشرده باشند (PACK_KEYS=1)، myisamchk باید ابتدا بلوک‌های کلید را از حالت فشرده خارج کرده، سپس اندیس‌ها را دوباره ایجاد کند و بلوک‌های کلید را مجدداً فشرده سازد. (در این حالت، ایجاد مجدد اندیس‌ها سریع‌تر از به‌روزرسانی آفست‌ها برای هر اندیس است.)

•--stats-method=name

مشخص می‌کند که کد جمع‌آوری آمار اندیس چگونه باید با مقادیر NULL رفتار کند. مقادیر ممکن برای name عبارتند از "nulls_unequal" (پیش‌فرض)، "nulls_equal" (شبیه‌سازی رفتار MySQL 4)، و "nulls_ignored".

برای دریافت توصیفی از یک جدول MyISAM یا آمارهای مربوط به آن، از دستورهای نشان‌داده‌شده در اینجا استفاده کنید. خروجی این دستورها در ادامه این بخش توضیح داده شده است.

•myisamchk -d tbl_name

دستور myisamchk را در “حالت توصیف” (describe mode) اجرا می‌کند تا توصیفی از جدول شما ارائه دهد. اگر سرور MariaDB را با غیرفعال بودن قفل‌گذاری خارجی (external locking) اجرا کنید، ممکن است myisamchk برای جدولی که در حین اجرای آن به‌روزرسانی می‌شود، خطا گزارش کند. با این حال، از آنجا که myisamchk در حالت توصیف تغییری در جدول ایجاد نمی‌کند، هیچ خطری برای از بین رفتن داده‌ها وجود ندارد.

•myisamchk -dv tbl_name

افزودن -v باعث اجرای myisamchk در حالت پرگویی (verbose) می‌شود تا اطلاعات بیشتری درباره جدول تولید کند. افزودن -v برای بار دوم اطلاعات باز هم بیشتری تولید خواهد کرد.

•myisamchk -eis tbl_name

تنها مهم‌ترین اطلاعات یک جدول را نمایش می‌دهد. این عملیات کُند است زیرا باید تمام جدول را بخواند.

•myisamchk -eiv tbl_name

این گزینه مشابه -eis عمل می‌کند، اما مراحل انجام کار را نیز گزارش می‌دهد.

آرگومان tbl_name می‌تواند نام یک جدول MyISAM یا نام فایل نمایه (index file) آن باشد، همان‌گونه که در myisamchk(1) توضیح داده شده است. همچنین می‌توان چندین آرگومان tbl_name را وارد کرد.

فرض کنید جدولی به نام person دارای ساختار زیر باشد. (گزینه جدول MAX_ROWS به این دلیل گنجانده شده است تا در خروجی نمونه myisamchk که در ادامه آمده، برخی مقادیر کوچک‌تر شده و خوانایی قالب خروجی راحت‌تر باشد.)

CREATE TABLE person
(
  id         INT NOT NULL AUTO_INCREMENT,
  last_name  VARCHAR(20) NOT NULL,
  first_name VARCHAR(20) NOT NULL,
  birth      DATE,
  death      DATE,
  PRIMARY KEY (id),
  INDEX (last_name, first_name),
  INDEX (birth)
) MAX_ROWS = 1000000;

همچنین فرض کنید اندازه فایل‌های داده و نمایه جدول به صورت زیر باشد:

-rw-rw----  1 mysql  mysql  9347072 Aug 19 11:47 person.MYD
-rw-rw----  1 mysql  mysql  6066176 Aug 19 11:47 person.MYI

نمونه‌ای از خروجی myisamchk -dvv:

MyISAM file:         person
Record format:       Packed
Character set:       latin1_swedish_ci (8)
File-version:        1
Creation time:       2009-08-19 16:47:41
Recover time:        2009-08-19 16:47:56
Status:              checked,analyzed,optimized keys
Auto increment key:              1  Last value:                306688
Data records:               306688  Deleted blocks:                 0
Datafile parts:             306688  Deleted data:                   0
Datafile pointer (bytes):        4  Keyfile pointer (bytes):        3
Datafile length:           9347072  Keyfile length:           6066176
Max datafile length:    4294967294  Max keyfile length:   17179868159
Recordlength:                   54
table description:
Key Start Len Index   Type                 Rec/key         Root  Blocksize
1   2     4   unique  long                       1        99328       1024
2   6     20  multip. varchar prefix           512      3563520       1024
    27    20          varchar                  512
3   48    3   multip. uint24 NULL           306688      6065152       1024
Field Start Length Nullpos Nullbit Type
1     1     1
2     2     4                      no zeros
3     6     21                     varchar
4     27    21                     varchar
5     48    3      1       1       no zeros
6     51    3      1       2       no zeros

توضیحات مربوط به انواع اطلاعاتی که myisamchk تولید می‌کند در ادامه آورده شده است. “Keyfile” به فایل نمایه (index file) اشاره دارد. “Record” و “row” مترادف یکدیگرند، همان‌طور که “field” و “column” نیز هم‌معنی هستند.

بخش ابتدایی توصیف جدول شامل این مقادیر است:.sp

•فایل MyISAM

نام فایل MyISAM (شاخص).

•قالب رکورد (Record format)

قالب استفاده‌شده برای ذخیره ردیف‌های جدول. مثال‌های قبلی از Fixed length استفاده می‌کنند. سایر مقادیر ممکن عبارت‌اند از Compressed و Packed. (مقدار Packed مطابق با چیزی است که SHOW TABLE STATUS به‌عنوان Dynamic گزارش می‌دهد.)

•مجموعه نویسه (Character set)

مجموعه نویسهٔ پیش‌فرض جدول.

•نسخه فایل (File-version)

نسخهٔ قالب MyISAM. در حال حاضر همیشه 1 است.

•زمان ایجاد (Creation time)

زمانی که فایل داده ایجاد شده است.

•زمان بازیابی (Recover time)

زمانی که فایل شاخص/داده آخرین بار بازسازی شده است.

•وضعیت (Status)

پرچم‌های وضعیت جدول. مقادیر ممکن عبارت‌اند از: crashed، open، changed، analyzed، optimized keys و sorted index pages.

•کلید Auto increment، آخرین مقدار (Last value)

شماره کلید مرتبط با ستون AUTO_INCREMENT جدول، و تازه‌ترین مقدار تولیدشده برای این ستون. در صورتی که چنین ستونی وجود نداشته باشد، این فیلدها ظاهر نمی‌شوند.

•رکوردهای داده (Data records)

تعداد ردیف‌های موجود در جدول.

•بلوک‌های حذف‌شده (Deleted blocks)

تعداد بلوک‌های حذف‌شده‌ای که هنوز فضای رزروشده دارند. برای به حداقل رساندن این فضا می‌توانید جدول خود را بهینه‌سازی کنید. ببینید: بخش 6.6.4، “MyISAM Table Optimization”.

•بخش‌های فایل داده (Datafile parts)

برای قالب ردیف پویا (dynamic-row)، این مقدار نشان‌دهنده تعداد بلوک‌های داده موجود است. برای یک جدول بهینه‌سازی‌شده بدون ردیف‌های تکه‌تکه‌شده (fragmented)، این مقدار با Data records یکسان است.

•داده‌های حذف‌شده (Deleted data)

میزان بایت‌های داده‌های حذف‌شده که هنوز آزاد نشده‌اند. برای به حداقل رساندن این فضا می‌توانید جدول خود را بهینه‌سازی کنید. ببینید: بخش 6.6.4، “MyISAM Table Optimization”.

•اشاره‌گر فایل داده (Datafile pointer)

اندازهٔ اشاره‌گر فایل داده، به بایت. این مقدار معمولاً ۲، ۳، ۴ یا ۵ بایت است. بیشتر جدول‌ها با ۲ بایت کار می‌کنند، اما این مورد هنوز از سمت MariaDB قابل کنترل نیست. برای جدول‌های ثابت (fixed)، این مقدار یک نشانی سطر است. برای جدول‌های پویا (dynamic)، این مقدار یک نشانی بایت است.

•اشاره‌گر فایل کلید (Keyfile pointer)

اندازهٔ اشاره‌گر فایل شاخص، به بایت. این مقدار معمولاً ۱، ۲ یا ۳ بایت است. بیشتر جدول‌ها با ۲ بایت کار می‌کنند، اما این مقدار به‌طور خودکار توسط MariaDB محاسبه می‌شود. این همیشه نشانی یک بلوک است.

•حداکثر طول فایل داده (Max datafile length)

حداکثر طولی که فایل دادهٔ جدول می‌تواند داشته باشد، به بایت.

•حداکثر طول فایل کلید (Max keyfile length)

حداکثر طولی که فایل شاخص جدول می‌تواند داشته باشد، به بایت.

•طول رکورد (Recordlength)

میزان فضایی که هر سطر اشغال می‌کند، به بایت.

بخش table description از خروجی شامل فهرستی از تمام کلیدهای جدول است. برای هر کلید، myisamchk برخی اطلاعات سطح‌پایین را نمایش می‌دهد:

•کلید (Key)

شمارهٔ این کلید. این مقدار تنها برای ستون اول کلید نمایش داده می‌شود. اگر این مقدار وجود نداشته باشد، سطر مربوط به ستون دوم یا ستون‌های بعدیِ یک کلید چندستونی است. برای جدول نشان‌داده‌شده در مثال، دو سطرِ table description برای شاخص دوم وجود دارد. این نشان می‌دهد که آن یک شاخص چندبخشی با دو بخش است.

•شروع (Start)

این بخش از شاخص در کجای سطر آغاز می‌شود.

•طول (Len)

طول این بخش از شاخص. برای اعداد فشرده (packed)، این مقدار همیشه باید برابر با طول کامل ستون باشد. برای رشته‌ها، ممکن است از طول کامل ستون شاخص‌گذاری‌شده کوتاه‌تر باشد، زیرا می‌توانید پیشوندی از یک ستون رشته‌ای را شاخص‌گذاری کنید. طول کل یک کلید چندبخشی، مجموع مقادیر Len برای تمام بخش‌های کلید است.

•شاخص (Index)

آیا یک مقدار کلید می‌تواند چندین بار در شاخص تکرار شود یا خیر. مقادیر ممکن عبارت‌اند از unique یا multip. (چندگانه).

•نوع (Type)

این بخش از شاخص چه نوع داده‌ای دارد. این یک نوع دادهٔ MyISAM است با مقادیر ممکنِ packed، stripped یا empty.

•ریشه (Root)

نشانی بلوک ریشهٔ شاخص.

•اندازهٔ بلوک (Blocksize)

اندازهٔ هر بلوک شاخص. این مقدار به‌طور پیش‌فرض ۱۰۲۴ است، اما هنگام ساخت MariaDB از کد منبع، این مقدار ممکن است در زمان کامپایل تغییر یابد.

•Rec/key

این یک مقدار آماری است که توسط بهینه‌ساز استفاده می‌شود. این مقدار مشخص می‌کند به ازای هر مقدار در این نمایه، چند سطر وجود دارد. یک نمایهٔ یکتا همواره مقداری برابر با 1 دارد. این مقدار ممکن است پس از بارگذاری جدول (یا تغییرات عمده در آن) با myisamchk -a به‌روزرسانی شود. اگر به‌هیچ‌وجه به‌روزرسانی نشود، مقدار پیش‌فرض 30 در نظر گرفته می‌شود.

بخش پایانی خروجی، اطلاعاتی دربارهٔ هر ستون ارائه می‌دهد:

•Field

شمارهٔ ستون.

•Start

موقعیت بایتی ستون در سطرهای جدول.

•Length

طول ستون به بایت.

•Nullpos, Nullbit

برای ستون‌هایی که می‌توانند NULL باشند، MyISAM مقادیر NULL را به صورت یک پرچم درون یک بایت ذخیره می‌کند. بسته به اینکه چه تعداد ستون با قابلیت پذیرش NULL وجود دارد، ممکن است یک یا چند بایت برای این منظور استفاده شود. مقادیر Nullpos و Nullbit در صورت خالی نبودن، مشخص می‌کنند کدام بایت و بیت حاوی پرچمی است که نشان می‌دهد آیا ستون NULL است یا خیر.

موقعیت و تعداد بایت‌های مورد استفاده برای ذخیرهٔ پرچم‌های NULL در خط مربوط به فیلد 1 نشان داده شده است. به همین دلیل است که برای جدول person با وجود داشتن تنها پنج ستون، شش خط Field وجود دارد.

•Type

نوع داده. این مقدار ممکن است شامل هر یک از توصیف‌کننده‌های زیر باشد:

•constant

تمام سطرها مقدار یکسانی دارند.

•no endspace

فضای خالی پایانی ذخیره نشود.

•no endspace, not_always

فضای خالی پایانی ذخیره نشود و فشرده‌سازی فضای خالی پایانی برای همهٔ مقادیر انجام نگیرد.

•no endspace, no empty

فضای خالی پایانی ذخیره نشود. مقادیر خالی ذخیره نشوند.

•table-lookup

ستون به یک ENUM تبدیل شد.

•zerofill(N)

پُرارزش‌ترین N بایت در مقدار همواره 0 هستند و ذخیره نمی‌شوند.

•no zeros

صفرها را ذخیره نمی‌کند.

•always zero

مقادیر صفر با استفاده از یک بیت ذخیره می‌شوند.

•Huff tree

شماره درخت هافمن (Huffman tree) مرتبط با ستون.

•Bits

تعداد بیت‌های استفاده‌شده در درخت هافمن.

فیلدهای Huff tree و Bits در صورتی نمایش داده می‌شوند که جدول با myisampack فشرده شده باشد. برای نمونه‌ای از این اطلاعات، myisampack(1) را ببینید.

نمونه‌ای از خروجی myisamchk -eiv:

Checking MyISAM file: person
Data records:  306688   Deleted blocks:       0
- check file-size
- check record delete-chain
No recordlinks
- check key delete-chain
block_size 1024:
- check index reference
- check data record references index: 1
Key:  1:  Keyblocks used:  98%  Packed:    0%  Max levels:  3
- check data record references index: 2
Key:  2:  Keyblocks used:  99%  Packed:   97%  Max levels:  3
- check data record references index: 3
Key:  3:  Keyblocks used:  98%  Packed:  -14%  Max levels:  3
Total:    Keyblocks used:  98%  Packed:   89%
- check records and index references
*** LOTS OF ROW NUMBERS DELETED ***
Records:            306688  M.recordlength:       25  Packed:            83%
Recordspace used:       97% Empty space:           2% Blocks/Record:   1.00
Record blocks:      306688  Delete blocks:         0
Record data:       7934464  Deleted data:          0
Lost space:         256512  Linkdata:        1156096
User time 43.08, System time 1.68
Maximum resident set size 0, Integral resident set size 0
Non-physical pagefaults 0, Physical pagefaults 0, Swaps 0
Blocks in 0 out 7, Messages in 0 out 0, Signals 0
Voluntary context switches 0, Involuntary context switches 0
Maximum memory usage: 1046926 bytes (1023k)

خروجی myisamchk -eiv شامل اطلاعات زیر است:

•Data records

تعداد ردیف‌های موجود در جدول.

•Deleted blocks

چه تعداد از بلوک‌های حذف‌شده همچنان فضای رزروشده دارند. می‌توانید جدول خود را بهینه‌سازی کنید تا این فضا به حداقل برسد. بخش 6.6.4، “MyISAM Table Optimization” را ببینید.

•Key

شماره کلید.

•Keyblocks used

چند درصد از بلوک‌های کلید استفاده شده‌اند. هنگامی که یک جدول به‌تازگی با myisamchk بازسازماندهی شده باشد، این مقادیر بسیار بالا هستند (بسیار نزدیک به حداکثر نظری).

•Packed

برنامه MariaDB تلاش می‌کند مقادیر کلیدی را که پسوند مشترک دارند فشرده‌سازی (pack) کند. این قابلیت تنها برای نمایه‌ها (indexes) روی ستون‌های CHAR و VARCHAR قابل استفاده است. برای رشته‌های نمایه‌گذاری‌شده طولانی که بخش‌های ابتدایی (سمت چپ) مشابهی دارند، این کار می‌تواند فضای استفاده‌شده را به‌طور چشمگیری کاهش دهد. در مثال پیشین، کلید دوم 40 بایت طول دارد و 97% کاهش فضا به‌دست آمده است.

•Max levels.sp میزان عمق درخت B-tree برای این کلید. جدول‌های بزرگ با مقادیر کلید طولانی، مقادیر بالاتری دریافت می‌کنند.
•Records

چه تعداد ردیف در جدول وجود دارد.

•M.recordlength

میانگین طول ردیف. این مقدار برای جدول‌های با ردیف‌های با طول ثابت، طول دقیق ردیف است، زیرا تمام ردیف‌ها طول یکسانی دارند.

•Packed

‏MariaDB فاصله‌های خالی را از انتهای رشته‌ها حذف می‌کند. مقدار Packed نشان‌دهنده درصد صرفه‌جویی حاصل از این کار است.

•Recordspace used

چند درصد از فایل داده مورد استفاده قرار گرفته است.

•Empty space

چند درصد از فایل داده استفاده‌نشده است.

•Blocks/Record

میانگین تعداد بلوک‌ها در هر ردیف (یعنی یک ردیف قطعه‌قطعه‌شده از چند پیوند تشکیل شده است). این مقدار برای جدول‌های با قالب ثابت همواره 1.0 است. این مقدار باید تا حد ممکن نزدیک به 1.0 باقی بماند. اگر بیش از اندازه بزرگ شد، می‌توانید جدول را بازسازماندهی کنید. ببینید: بخش 6.6.4، “بهینه‌سازی جدول‌های MyISAM”.

•Recordblocks

چه تعداد بلوک (پیوند) استفاده شده است. برای جدول‌های با قالب ثابت، این مقدار برابر با تعداد ردیف‌ها است.

•Deleteblocks

چه تعداد بلوک (پیوند) حذف شده است.

•Recorddata

چه تعداد بایت از فایل داده استفاده شده است.

•Deleted data

چه تعداد بایت در فایل داده حذف شده (استفاده‌نشده) است.

•Lost space

اگر طول یک ردیف پس از به‌روزرسانی کوتاه‌تر شود، مقداری فضا هدر می‌رود. این مقدار مجموع تمام این اتلاف‌ها برحسب بایت است.

•Linkdata

هنگامی که از قالب جدول پویا استفاده می‌شود، قطعات ردیف با اشاره‌گرها (هرکدام ۴ تا ۷ بایت) به یکدیگر پیوند داده می‌شوند. Linkdata مجموع فضای ذخیره‌سازی استفاده‌شده توسط تمام این اشاره‌گرها است.

تخصیص حافظه هنگام اجرای myisamchk بسیار حائز اهمیت است. myisamchk بیشتر از مقداری که برای متغیرهای مرتبط با حافظهٔ آن تنظیم شده است، حافظه مصرف نمی‌کند. اگر قصد دارید از myisamchk روی جدول‌های بسیار بزرگ استفاده کنید، ابتدا باید مشخص کنید که مایلید چه مقدار حافظه مصرف کند. مقدار پیش‌فرض برای انجام عملیات تعمیر تنها حدود ۳ مگابایت است. با استفاده از مقادیر بزرگ‌تر، می‌توانید کاری کنید که myisamchk سریع‌تر عمل کند. برای نمونه، اگر بیش از ۳۲ مگابایت رم (RAM) دارید، می‌توانید از گزینه‌هایی مانند این موارد استفاده کنید (علاوه بر هر گزینهٔ دیگری که ممکن است مشخص نمایید):

shell> myisamchk --sort_buffer_size=16M \
           --key_buffer_size=16M \
           --read_buffer_size=1M \
           --write_buffer_size=1M ...

استفاده از --sort_buffer_size=16M احتمالاً برای بیشتر موارد کافی خواهد بود.

توجه داشته باشید که myisamchk از فایل‌های موقت در TMPDIR استفاده می‌کند. اگر TMPDIR به یک فایل‌سیستم مستقر در حافظه رم اشاره کند، خطاهای کمبود حافظه (out of memory) به‌سادگی ممکن است رخ دهند. در صورت بروز این مشکل، myisamchk را همراه با گزینهٔ --tmpdir=path اجرا کنید تا دایرکتوری واقع روی یک فایل‌سیستم با فضای بیشتر مشخص شود.

هنگام انجام عملیات تعمیر، myisamchk به مقدار زیادی فضای دیسک نیز نیاز دارد:

•دو برابر اندازهٔ فایل داده (فایل اصلی و یک نسخهٔ رونوشت). در صورتی که تعمیر را با گزینهٔ --quick انجام دهید نیازی به این فضا نیست؛ در این حالت، فقط فایل نمایه (index) مجدداً ایجاد می‌شود. این فضا باید روی همان فایل‌سیستمی که فایل داده اصلی قرار دارد در دسترس باشد، چرا که رونوشت در همان دایرکتوری فایل اصلی ایجاد می‌گردد.
•فضا برای فایل نمایه جدید که جایگزین فایل قدیمی می‌شود. فایل نمایه قدیمی در ابتدای عملیات تعمیر کوتاه (truncate) می‌شود، بنابراین معمولاً می‌توانید از این فضا صرف‌نظر کنید. این فضا باید روی همان فایل‌سیستمی که فایل داده اصلی قرار دارد در دسترس باشد.
•هنگام استفاده از --recover یا --sort-recover (اما نه هنگام استفاده از --safe-recover)، به فضا روی دیسک برای مرتب‌سازی نیاز دارید. این فضا در دایرکتوری موقت (مشخص‌شده با TMPDIR یا --tmpdir=path) تخصیص می‌یابد. فرمول زیر مقدار فضای مورد نیاز را به دست می‌دهد:
(largest_key + row_pointer_length) × number_of_rows × 2

می‌توانید طول کلیدها و مقدار row_pointer_length را با دستور myisamchk -dv tbl_name بررسی کنید (بخش “MYISAMCHK TABLE INFORMATION” را ببینید). مقادیر row_pointer_length و number_of_rows همان مقادیر Datafile pointer و Data records در توضیحات جدول هستند. برای تعیین مقدار largest_key، خطوط Key را در توضیحات جدول بررسی کنید. ستون Len نشان‌دهندهٔ تعداد بایت‌ها برای هر بخش از کلید است. برای یک نمایه چندستونه، اندازه کلید برابر با مجموع مقادیر Len برای تمام بخش‌های کلید است.

اگر در طول تعمیر با کمبود فضای دیسک مواجه شدید، می‌توانید به جای --recover گزینهٔ --safe-recover را امتحان کنید..SH "کپی‌رایت و تکثیر (COPYRIGHT)"

کپی‌رایت 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc., 2010-2025 MariaDB Foundation

این مستندات یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تنها تحت شرایط «مجوز عمومی همگانی گنو» (GNU General Public License) همان‌طور که توسط بنیاد نرم‌افزار آزاد منتشر شده است، بازتوزیع کرده یا تغییر دهید؛ نسخه ۲ مجوز.

این مستندات به این امید که مفید واقع شود توزیع شده است، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به GNU General Public License مراجعه کنید.

شما باید به همراه این برنامه نسخه‌ای از GNU General Public License را دریافت کرده باشید؛ در غیر این صورت، به Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA نامه بنویسید یا از http://www.gnu.org/licenses بازدید کنید.

برای اطلاعات بیشتر، لطفاً به مستندات MariaDB مراجعه کنید که به‌صورت برخط در https://mariadb.com/docs در دسترس است.

MariaDB Foundation (http://www.mariadb.org).

5 March 2025 MariaDB 11.8