'\" t .\" .TH "\fBMYISAMCHK\fR" "1" "5 March 2025" "MariaDB 11.8" "MariaDB Database System" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .\" myisamchk .SH "نام (NAME)" myisamchk \- ابزار نگهداری جدول‌های MyISAM .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBmyisamchk\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fItbl_name\fR\fR\fB\ \&.\&.\&.\fR\ 'u \fBmyisamchk [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.\fR .SH "توضیحات (DESCRIPTION)" .PP ابزار \fBmyisamchk\fR اطلاعاتی را درباره جدول‌های پایگاه‌داده به دست می‌آورد یا آن‌ها را بررسی، تعمیر یا بهینه‌سازی می‌کند\&. \fBmyisamchk\fR با جدول‌های MyISAM کار می‌کند (جدول‌هایی که برای ذخیره داده‌ها و نمایه‌ها دارای فایل‌های \&.MYD و \&.MYI هستند)\&. .PP استفاده از \fBmyisamchk\fR برای جدول‌های افرازبندی‌شده (partitioned) پشتیبانی نمی‌شود\&. .if n \{\ .sp .\} .RS 4 .it 1 .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBاحتیاط\fR .ps -1 .br .PP بهتر است پیش از انجام عملیات تعمیر جدول، یک نسخه پشتیبان از آن تهیه کنید؛ تحت شرایط خاصی ممکن است این عملیات باعث از دست رفتن داده‌ها شود\&. خطاهای سامانه فایل از جمله این موارد احتمالی هستند\&. .sp .5v .RE .PP ابزار \fBmyisamchk\fR را به این صورت فراخوانی کنید: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmyisamchk [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.\fR .fi .if n \{\ .RE .\} .PP بخش \fIoptions\fR مشخص می‌کند که می‌خواهید \fBmyisamchk\fR چه کاری انجام دهد\&. این گزینه‌ها در بخش‌های بعدی توضیح داده شده‌اند\&. همچنین می‌توانید با اجرای \fBmyisamchk \-\-help\fR فهرستی از گزینه‌ها را مشاهده کنید\&. .PP بدون مشخص کردن هیچ گزینه‌ای، \fBmyisamchk\fR صرفاً به عنوان عملیات پیش‌فرض، جدول شما را بررسی می‌کند\&. برای دریافت اطلاعات بیشتر یا درخواست از \fBmyisamchk\fR جهت انجام اقدامات اصلاحی، گزینه‌ها را مطابق توضیحات بخش‌های بعد مشخص کنید\&. .PP مقدار \fItbl_name\fR جدول پایگاه‌داده‌ای است که می‌خواهید بررسی یا تعمیر کنید\&. اگر \fBmyisamchk\fR را در جایی غیر از دایرکتوری پایگاه‌داده اجرا می‌کنید، باید مسیر دایرکتوری پایگاه‌داده را مشخص کنید، زیرا \fBmyisamchk\fR اطلاعی از مکان قرارگیری پایگاه‌داده ندارد\&. در واقع، برای \fBmyisamchk\fR اهمیتی ندارد که فایل‌های مورد نظر حتماً در یک دایرکتوری پایگاه‌داده باشند\&. می‌توانید فایل‌های مربوط به یک جدول را در مکان دیگری کپی کرده و عملیات بازیابی را روی آن‌ها انجام دهید\&. .PP در صورت تمایل می‌توانید نام چندین جدول را در خط فرمان \fBmyisamchk\fR قید کنید\&. همچنین می‌توانید با مشخص کردن نام فایل نمایهٔ یک جدول (فایلی با پسوند \&.MYI\fR)، آن جدول را تعیین کنید\&. این کار به شما امکان می‌دهد تا با استفاده از الگوی *\&.MYI تمام جدول‌های موجود در یک دایرکتوری را مشخص کنید\&. برای نمونه، اگر در دایرکتوری پایگاه‌داده هستید، می‌توانید تمام جدول‌های MyISAM موجود در آن را به این شکل بررسی کنید: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmyisamchk *\&.MYI\fR .fi .if n \{\ .RE .\} .PP اگر در دایرکتوری پایگاه‌داده نیستید، می‌توانید با مشخص کردن مسیر دایرکتوری، تمام جدول‌های موجود در آن را بررسی کنید: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmyisamchk \fR\fB\fI/path/to/database_dir/\fR\fR\fB*\&.MYI\fR .fi .if n \{\ .RE .\} .PP حتی می‌توانید با استفاده از نویسه عام در مسیر دایرکتوری داده‌های MariaDB، تمام جدول‌ها را در تمام پایگاه‌های داده بررسی کنید: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmyisamchk \fR\fB\fI/path/to/datadir/*/*\fR\fR\fB\&.MYI\fR .fi .if n \{\ .RE .\} .PP روش توصیه‌شده برای بررسی سریع تمام جدول‌های MyISAM به این صورت است: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmyisamchk \-\-silent \-\-fast \fR\fB\fI/path/to/datadir/*/*\fR\fR\fB\&.MYI\fR .fi .if n \{\ .RE .\} .PP اگر می‌خواهید تمام جدول‌های MyISAM را بررسی کرده و جدول‌های آسیب‌دیده را تعمیر کنید، می‌توانید از دستور زیر استفاده کنید: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmyisamchk \-\-silent \-\-force \-\-fast \-\-update\-state \e\fR \fB\-\-key_buffer_size=64M \-\-sort_buffer_size=64M \e\fR \fB\-\-read_buffer_size=1M \-\-write_buffer_size=1M \e\fR \fB\fI/path/to/datadir/*/*\fR\fR\fB\&.MYI\fR .fi .if n \{\ .RE .\} .PP این دستور فرض می‌کند که بیش از 64MB حافظه آزاد در اختیار دارید\&. برای اطلاعات بیشتر درباره تخصیص حافظه در \fBmyisamchk\fR، بخش \(lqMYISAMCHK MEMORY USAGE\(rq را ببینید\&. .if n \{\ .sp .\} .RS 4 .it 1 .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمهم\fR .ps -1 .br .PP \fIباید اطمینان حاصل کنید هنگام اجرای \fR\fI\fBmyisamchk\fR\fR،\fI هیچ برنامه دیگری از جدول‌ها استفاده نمی‌کند\&.\fR موثرترین روش برای انجام این کار، متوقف کردن سرور MariaDB هنگام اجرای \fBmyisamchk\fR یا قفل کردن تمام جدول‌هایی است که \fBmyisamchk\fR روی آن‌ها اجرا می‌شود\&..PP در غیر این صورت، هنگامی که \fBmyisamchk\fR را اجرا می‌کنید، ممکن است پیام خطای زیر را نمایش دهد: .sp .if n \{\ .RS 4 .\} .nf warning: clients are using or haven't closed the table properly .fi .if n \{\ .RE .\} .PP این بدان معناست که شما در حال تلاش برای بررسی جدولی هستید که توسط برنامه دیگری (مانند سرور \fBmariadbd\fR) به‌روزرسانی شده که هنوز فایل را نبسته است یا بدون بستن درست فایل متوقف شده است؛ این وضعیت گاهی می‌تواند منجر به خرابی یک یا چند جدول MyISAM شود\&. .PP اگر \fBmariadbd\fR در حال اجرا است، باید آن را با استفاده از FLUSH TABLES وادار کنید تا هرگونه تغییرات جدول را که هنوز در حافظه میان‌گیر (بافر) شده‌اند تخلیه کند\&. سپس باید اطمینان حاصل کنید که هنگام اجرای \fBmyisamchk\fR هیچ کاربری از جدول‌ها استفاده نمی‌کند\&. .PP با این حال، ساده‌ترین راه برای جلوگیری از این مشکل، استفاده از CHECK TABLE به جای \fBmyisamchk\fR برای بررسی جدول‌ها است\&. .sp .5v .RE .PP \fBmyisamchk\fR از گزینه‌های زیر پشتیبانی می‌کند، که می‌توانند در خط فرمان یا در گروه [myisamchk] فایل پیکربندی مشخص شوند\&. .SH "گزینه‌های عمومی MYISAMCHK (MYISAMCHK GENERAL OPTIONS)" .\" options: myisamchk .\" myisamchk: options .PP گزینه‌های شرح داده شده در این بخش را می‌توان برای هر نوع عملیات نگهداری جدول که توسط \fBmyisamchk\fR انجام می‌شود به کار برد\&. بخش‌های پس از این، گزینه‌هایی را شرح می‌دهند که تنها به عملیات‌های خاصی مانند بررسی یا تعمیر جدول مربوط می‌شوند\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: help option .\" help option: myisamchk \fB\-\-help\fR, \fB\-?\fR .sp نمایش پیام راهنما و خروج\&. گزینه‌ها بر پایه نوع عملیات گروه‌بندی شده‌اند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: HELP option .\" HELP option: myisamchk \fB\-\-HELP\fR, \fB\-H\fR .sp نمایش پیام راهنما و خروج\&. گزینه‌ها در یک فهرست واحد ارائه می‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: debug option .\" debug option: myisamchk \fB\-\-debug=\fR\fB\fIdebug_options\fR\fR, \fB\-# \fR\fB\fIdebug_options\fR\fR .sp نوشتن گزارش اشکال‌زدایی\&. یک رشته متداول برای \fIdebug_options\fR به صورت 'd:t:o,\fIfile_name\fR' است\&. مقدار پیش‌فرض 'd:t:o,/tmp/myisamchk.trace' است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: silent option .\" silent option: myisamchk \fB\-\-silent\fR, \fB\-s\fR .sp حالت بی‌صدا\&. نوشتن خروجی تنها هنگامی که خطا رخ می‌دهد\&. می‌توانید از \fB\-s\fR دو بار (\fB\-ss\fR) استفاده کنید تا \fBmyisamchk\fR بسیار ساکت عمل کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: verbose option .\" verbose option: myisamchk \fB\-\-verbose\fR, \fB\-v\fR .sp حالت پرگو\&. چاپ اطلاعات بیشتر درباره کاری که برنامه انجام می‌دهد\&. این گزینه می‌تواند همراه با \fB\-d\fR و \fB\-e\fR استفاده شود\&. برای دریافت خروجی حتی بیشتر، از \fB\-v\fR به دفعات (\fB\-vv\fR، \fB\-vvv\fR) استفاده کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: version option .\" version option: myisamchk \fB\-\-version\fR, \fB\-V\fR .sp نمایش اطلاعات نسخه و خروج\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: wait option .\" wait option: myisamchk \fB\-\-wait\fR, \fB\-w\fR .sp به جای پایان دادن همراه با خطا در صورتی که جدول قفل است، پیش از ادامه منتظر بمانید تا قفل جدول باز شود\&. اگر در حال اجرای \fBmariadbd\fR با قفل‌گذاری خارجی غیرفعال هستید، جدول تنها توسط یک دستور دیگر از \fBmyisamchk\fR می‌تواند قفل شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: print argument list option .\" print argument list option: myisamchk \fB\-\-print\-defaults\fR.sp چاپ فهرست آرگومان‌های برنامه و خروج\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: no defaults option .\" no defaults option: myisamchk \fB\-\-no\-defaults\fR .sp گزینه‌های پیش‌فرض از هیچ فایل گزینه‌ای خوانده نشوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: defaults file option .\" defaults file option: myisamchk \fB\-\-defaults\-file=#\fR .sp گزینه‌های پیش‌فرض تنها از فایل داده‌شده خوانده شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: defaults extrafile option .\" defaults extra file option: myisamchk \fB\-\-defaults\-extra\-file=#\fR .sp این فایل پس از خوانده شدن فایل‌های سراسری خوانده شود\&. .RE .PP شما همچنین می‌توانید متغیرهای زیر را با استفاده از نحو \fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR تنظیم کنید: .\" decode_bits myisamchk variable .\" ft_max_word_len myisamchk variable .\" ft_min_word_len myisamchk variable .\" ft_stopword_file myisamchk variable .\" key_buffer_size myisamchk variable .\" key_cache_block_size myisamchk variable .\" myisam_block_size myisamchk variable .\" read_buffer_size myisamchk variable .\" sort_buffer_size myisamchk variable .\" sort_key_blocks myisamchk variable .\" stats_method myisamchk variable .\" write_buffer_size myisamchk variable .TS allbox tab(:); l l l l l l l l l l l l l l l l l l l l l l l l. T{ \fBمتغیر\fR T}:T{ \fBمقدار پیش‌فرض\fR T} T{ decode_bits T}:T{ 9 T} T{ ft_max_word_len T}:T{ وابسته به نسخه T} T{ ft_min_word_len T}:T{ 4 T} T{ ft_stopword_file T}:T{ فهرست توکار T} T{ key_buffer_size T}:T{ 523264 T} T{ key_cache_block_size T}:T{ 1024 T} T{ myisam_block_size T}:T{ 1024 T} T{ read_buffer_size T}:T{ 262136 T} T{ sort_buffer_size T}:T{ 2097144 T} T{ sort_key_blocks T}:T{ 16 T} T{ stats_method T}:T{ nulls_unequal T} T{ write_buffer_size T}:T{ 262136 T} .TE .sp 1 .PP متغیرهای ممکن برای \fBmyisamchk\fR و مقادیر پیش‌فرض آن‌ها را می‌توان با دستور \fBmyisamchk \-\-help\fR بررسی کرد: .PP sort_buffer_size زمانی استفاده می‌شود که کلیدها با مرتب‌سازی کلیدها بازسازی شوند، که حالت عادی در هنگام استفاده از \fB\-\-recover\fR است\&. .PP key_buffer_size زمانی استفاده می‌شود که در حال بررسی جدول با \fB\-\-extend\-check\fR هستید، یا هنگامی که کلیدها با درج سطر‌به‌سطر در جدول تعمیر می‌شوند (مانند درج‌های عادی)\&. بازسازی از طریق بافر کلید در موارد زیر استفاده می‌شود: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} از \fB\-\-safe\-recover\fR استفاده کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} فایل‌های موقت موردنیاز برای مرتب‌سازی کلیدها، بیش از دو برابر بزرگ‌تر از زمانی باشند که فایل کلید به‌طور مستقیم ایجاد می‌شود\&. این حالت اغلب زمانی رخ می‌دهد که مقادیر کلید بزرگی برای ستون‌های CHAR، VARCHAR یا TEXT داشته باشید، زیرا عملیات مرتب‌سازی در حین پیشرفت نیاز به ذخیره کامل مقادیر کلید دارد\&. اگر فضای موقت زیادی دارید و می‌توانید \fBmyisamchk\fR را وادار به تعمیر از طریق مرتب‌سازی کنید، می‌توانید از گزینه \fB\-\-sort\-recover\fR استفاده کنید\&. .RE.PP تعمیر از طریق بافر کلید (key buffer)، فضای دیسک بسیار کمتری نسبت به استفاده از مرتب‌سازی (sorting) اشغال می‌کند، اما بسیار کندتر است\&. .PP اگر خواهان تعمیر سریع‌تری هستید، متغیرهای key_buffer_size و sort_buffer_size را روی حدود ۲۵٪ از حافظه در دسترس خود تنظیم کنید\&. می‌توانید هر دو متغیر را روی مقادیر بزرگی قرار دهید، زیرا در هر زمان تنها یکی از آن‌ها استفاده می‌شود\&. .PP متغیر myisam_block_size اندازه‌ای است که برای بلوک‌های ایندکس استفاده می‌شود\&. .PP متغیر stats_method بر نحوه رفتار با مقادیر NULL برای جمع‌آوری آمار ایندکس در هنگام تعیین گزینه \fB\-\-analyze\fR اثر می‌گذارد\&. این متغیر مانند متغیر سیستمی myisam_stats_method عمل می‌کند\&. برای اطلاعات بیشتر، توضیحات myisam_stats_method را در Section\ \&5.1.4, \(lqServer System Variables\(rq و Section\ \&7.4.7, \(lqMyISAM Index Statistics Collection\(rq ببینید\&. .PP متغیرهای ft_min_word_len و ft_max_word_len حداقل و حداکثر طول کلمه را برای ایندکس‌های FULLTEXT مشخص می‌کنند\&. ft_stopword_file نام فایل کلمات توقف (stopword) را مشخص می‌کند\&. این موارد باید تحت شرایط زیر تنظیم شوند\&. .PP اگر از \fBmyisamchk\fR برای انجام عملیاتی استفاده کنید که ایندکس‌های جدول را تغییر می‌دهد (مانند repair یا analyze)، ایندکس‌های FULLTEXT با استفاده از مقادیر پیش‌فرض پارامترهای تمام‌متن برای حداقل و حداکثر طول کلمه و فایل stopword بازسازی می‌شوند، مگر اینکه خلاف آن را تعیین کنید\&. این موضوع می‌تواند منجر به شکست پرس‌وجوها شود\&. .PP این مشکل از آنجا ناشی می‌شود که این پارامترها فقط برای سرور شناخته‌شده هستند\&. آن‌ها در فایل‌های ایندکس MyISAM ذخیره نمی‌شوند\&. برای جلوگیری از این مشکل، در صورتی که حداقل یا حداکثر طول کلمه یا فایل stopword را در سرور تغییر داده‌اید، همان مقادیر ft_min_word_len، ft_max_word_len و ft_stopword_file را به \fBmyisamchk\fR بدهید که برای \fBmariadbd\fR استفاده می‌کنید\&. برای مثال، اگر حداقل طول کلمه را برابر با ۳ قرار داده‌اید، می‌توانید یک جدول را با \fBmyisamchk\fR به این صورت تعمیر کنید: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmyisamchk \-\-recover \-\-ft_min_word_len=3 \fR\fB\fItbl_name\fR\fR\fB\&.MYI\fR .fi .if n \{\ .RE .\} .PP برای اطمینان از اینکه \fBmyisamchk\fR و سرور از مقادیر یکسانی برای پارامترهای تمام‌متن استفاده می‌کنند، می‌توانید هر کدام را در هر دو بخش [mariadbd] و [myisamchk] از یک فایل تنظیمات (option file) قرار دهید: .sp .if n \{\ .RS 4 .\} .nf [mariadbd] ft_min_word_len=3 [myisamchk] ft_min_word_len=3 .fi .if n \{\ .RE .\} .PP یک جایگزین برای استفاده از \fBmyisamchk\fR استفاده از عبارت‌های REPAIR TABLE، ANALYZE TABLE، OPTIMIZE TABLE یا ALTER TABLE است\&. این عبارت‌ها توسط سرور انجام می‌شوند که مقادیر مناسب پارامترهای تمام‌متن را برای استفاده می‌داند\&..SH "گزینه‌های بررسی MYISAMCHK (MYISAMCHK CHECK OPTIONS)" .\" check options: myisamchk .\" tables: checking .PP دستور \fBmyisamchk\fR از گزینه‌های زیر برای عملیات بررسی جدول پشتیبانی می‌کند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: check option .\" check option: myisamchk \fB\-\-check\fR, \fB\-c\fR .sp بررسی جدول برای یافتن خطاها\&. اگر هیچ گزینه‌ای را برای تعیین صریح نوع عملیات مشخص نکنید، این عملیات پیش‌فرض است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: check-only-changed option .\" check-only-changed option: myisamchk \fB\-\-check\-only\-changed\fR, \fB\-C\fR .sp فقط جدول‌هایی را بررسی می‌کند که از زمان آخرین بررسی تغییر کرده‌اند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: extend-check option .\" extend-check option: myisamchk \fB\-\-extend\-check\fR, \fB\-e\fR .sp جدول را بسیار دقیق و کامل بررسی می‌کند\&. اگر جدول اندیس‌های زیادی داشته باشد، این کار بسیار کُند خواهد بود\&. این گزینه فقط باید در موارد بحرانی استفاده شود\&. در حالت عادی، \fBmyisamchk\fR یا \fBmyisamchk \-\-medium\-check\fR باید بتوانند وجود هرگونه خطا در جدول را مشخص کنند\&. .sp اگر از \fB\-\-extend\-check\fR استفاده می‌کنید و حافظهٔ زیادی در اختیار دارید، تنظیم متغیر key_buffer_size روی مقداری بزرگ، به اجرای سریع‌تر عملیات تعمیر کمک می‌کند\&. .sp برای شرح قالب خروجی، بخش \(lqMYISAMCHK TABLE INFORMATION\(rq را ببینید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: fast option .\" fast option: myisamchk \fB\-\-fast\fR, \fB\-F\fR .sp فقط جدول‌هایی را بررسی می‌کند که به‌درستی بسته نشده‌اند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: force option .\" force option: myisamchk \fB\-\-force\fR, \fB\-f\fR .sp در صورتی که \fBmyisamchk\fR خطایی در جدول پیدا کند، عملیات تعمیر را به‌طور خودکار انجام می‌دهد\&. نوع تعمیر همان موردی است که با گزینهٔ \fB\-\-recover\fR یا \fB\-r\fR مشخص می‌شود\&. وضعیت‌ها نیز مانند گزینهٔ \fB\-\-update\-state\fR به‌روزرسانی خواهند شد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: information option .\" information option: myisamchk \fB\-\-information\fR, \fB\-i\fR .sp چاپ آمار و اطلاعات توصیفی دربارهٔ جدولی که بررسی می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: medium-check option .\" medium-check option: myisamchk \fB\-\-medium\-check\fR, \fB\-m\fR .sp بررسی‌ای انجام می‌دهد که از عملیات \fB\-\-extend\-check\fR سریع‌تر است\&. این گزینه فقط 99\&.99% از تمام خطاها را پیدا می‌کند که در اکثر موارد کافی است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: read-only option .\" read-only option: myisamchk \fB\-\-read\-only\fR, \fB\-T\fR .sp جدول را به‌عنوان بررسی‌شده علامت‌گذاری نمی‌کند\&. این گزینه زمانی مفید است که از \fBmyisamchk\fR برای بررسی جدولی استفاده می‌کنید که توسط برنامهٔ دیگری بدون قفل‌گذاری در حال استفاده است، مانند \fBmariadbd\fR هنگامی که با غیرفعال بودن قفل‌گذاری خارجی (external locking) اجرا شده باشد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: update-state option .\" update-state option: myisamchk \fB\-\-update\-state\fR, \fB\-U\fR .sp اطلاعاتی را در فایل \&.MYI ذخیره می‌کند تا مشخص شود چه زمانی جدول بررسی شده و آیا دچار خرابی (crash) شده است یا خیر\&. از این گزینه باید برای بهره‌مندی کامل از گزینهٔ \fB\-\-check\-only\-changed\fR استفاده شود، اما اگر سرور \fBmariadbd\fR در حال استفاده از جدول است و آن را با قفل‌گذاری خارجیِ غیرفعال اجرا کرده‌اید، نباید این گزینه را به کار ببرید\&. .RE.SH "گزینه‌های تعمیر MYISAMCHK (MYISAMCHK REPAIR OPTIONS)" .\" repair options: myisamchk .\" files: repairing .PP دستور \fBmyisamchk\fR از گزینه‌های زیر برای عملیات تعمیر جدول پشتیبانی می‌کند (عملیاتی که هنگام تعیین گزینه‌ای مانند \fB\-\-recover\fR یا \fB\-\-safe\-recover\fR انجام می‌شوند): .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: backup option .\" backup option: myisamchk \fB\-\-backup\fR, \fB\-B\fR .sp یک نسخهٔ پشتیبان از فایل \&.MYD به صورت \fIfile_name\fR\-\fItime\fR\&.BAK تهیه می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: character-sets-dir option .\" character-sets-dir option: myisamchk \fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR .sp دایرکتوری محل نصب مجموعه‌های نویسه (character sets)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: correct-checksum option .\" correct-checksum option: myisamchk \fB\-\-correct\-checksum\fR .sp اطلاعات چک‌سام (checksum) را برای جدول اصلاح می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: create-missing-keys option .\" create-missing-keys option: myisamchk \fB\-\-create\-missing\-keys\fR .sp کلیدهای ناموجود را ایجاد می‌کند. با این فرض که فایل داده صحیح است و تعداد سطرهای ذخیره‌شده در فایل ایندکس نیز درست است\&. گزینهٔ \fB\-\-quick\fR را فعال می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: data-file-length option .\" data-file-length option: myisamchk \fB\-\-data\-file\-length=\fR\fB\fIlen\fR\fR, \fB\-D \fR\fB\fIlen\fR\fR .sp حداکثر طول فایل داده (هنگام ایجاد مجدد فایل داده زمانی که \(lqپر\(rq است)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: extend-check option .\" extend-check option: myisamchk \fB\-\-extend\-check\fR, \fB\-e\fR .sp تعمیری انجام می‌دهد که تلاش می‌کند هر سطر ممکن را از فایل داده بازیابی کند\&. به‌طور معمول، این کار سطرهای نامعتبر و زائد (garbage) زیادی را نیز پیدا می‌کند\&. از این گزینه استفاده نکنید مگر آنکه چارهٔ دیگری نداشته باشید\&. .sp برای شرح قالب خروجی، به بخش \(lqMYISAMCHK TABLE INFORMATION\(rq مراجعه کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: force option .\" force option: myisamchk \fB\-\-force\fR, \fB\-f\fR .sp به جای لغو عملیات، فایل‌های واسط و موقت قدیمی (فایل‌هایی با نام‌هایی مانند \fItbl_name\fR\&.TMD) را بازنویسی می‌کند\&. یک گزینهٔ \fB\-\-force\fR دیگر اضافه کنید تا از خطاهای 'myisam_sort_buffer_size is too small' جلوگیری شود\&. در این حالت تلاش می‌شود تعمیر با مقدار داده‌شدهٔ \fBmyisam_sort_buffer_size\fR انجام شود و بافرهای مدیریتی به تعداد مورد نیاز به‌صورت پویا تخصیص یابند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: keys-used option .\" keys-used option: myisamchk \fB\-\-keys\-used=\fR\fB\fIval\fR\fR, \fB\-k \fR\fB\fIval\fR\fR .sp برای \fBmyisamchk\fR، مقدار این گزینه یک مقدار بیتی است که مشخص می‌کند کدام ایندکس‌ها به‌روزرسانی شوند\&. هر بیت دودویی از مقدار گزینه متناظر با یک ایندکس جدول است، که در آن اولین ایندکس بیت 0 است\&. مقدار گزینهٔ 0 به‌روزرسانی تمام ایندکس‌ها را غیرفعال می‌کند که می‌تواند برای درج (insert) سریع‌تر داده‌ها به کار رود\&. ایندکس‌های غیرفعال‌شده را می‌توان با استفاده از \fBmyisamchk \-r\fR مجدداً فعال کرد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: max-record-length option .\" max-record-length option: myisamchk \fB\-\-max\-record\-length=\fR\fB\fIlen\fR\fR .sp اگر \fBmyisamchk\fR نتواند حافظهٔ لازم برای نگهداری سطرهای بزرگ‌تر از طول مشخص‌شده را تخصیص دهد، از آن‌ها رد می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: parallel-recover option .\" parallel-recover option: myisamchk \fB\-\-parallel\-recover\fR, \fB\-p\fR.sp از همان روش \fB\-r\fR و \fB\-n\fR استفاده می‌کند، اما تمام کلیدها را با به‌کارگیری ریسه‌های مختلف، به‌صورت موازی ایجاد می‌کند\&. \fIاین کد در وضعیت آزمایشی (بتا) است\&. مسئولیت استفاده از آن بر عهده خودتان است!\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: quick option .\" quick option: myisamchk \fB\-\-quick\fR, \fB\-q\fR .sp با اصلاح صرفاً فایل نمایه و نه فایل داده، تعمیر سریع‌تری انجام می‌دهد\&. می‌توانید این گزینه را دو بار مشخص کنید تا \fBmyisamchk\fR را مجبور کند در صورت وجود کلیدهای تکراری، فایل داده اصلی را تغییر دهد\&. نکته: جدول‌هایی که فایل داده آن‌ها خراب شده است را نمی‌توان با این گزینه تعمیر کرد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: recover option .\" recover option: myisamchk \fB\-\-recover\fR, \fB\-r\fR .sp تعمیری انجام می‌دهد که تقریباً می‌تواند هر مشکلی را به جز کلیدهای یکتایی که یکتا نیستند (که خطایی بسیار نامحتمل در جدول‌های MyISAM است) برطرف کند\&. اگر می‌خواهید جدولی را بازیابی کنید، این نخستین گزینه‌ای است که باید امتحان کنید\&. تنها در صورتی باید \fB\-\-safe\-recover\fR را امتحان کنید که \fBmyisamchk\fR گزارش دهد جدول با استفاده از \fB\-\-recover\fR قابل بازیابی نیست\&. (در حالت بسیار نامحتمل که \fB\-\-recover\fR شکست بخورد، فایل داده دست‌نخورده باقی می‌ماند\&.) .sp اگر حافظه زیادی در اختیار دارید، باید مقدار sort_buffer_size را افزایش دهید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: safe-recover option .\" safe-recover option: myisamchk \fB\-\-safe\-recover\fR, \fB\-o\fR .sp تعمیری را با استفاده از یک روش بازیابی قدیمی انجام می‌دهد که تمام سطرها را به ترتیب می‌خواند و همه درخت‌های نمایه را بر اساس سطرهای پیدا شده به‌روزرسانی می‌کند\&. این روش یک مرتبه بزرگی کُندتر از \fB\-\-recover\fR است، اما می‌تواند چند مورد بسیار نامحتمل را مدیریت کند که \fB\-\-recover\fR قادر به حل آن‌ها نیست\&. این روش بازیابی همچنین فضای دیسک بسیار کمتری نسبت به \fB\-\-recover\fR مصرف می‌کند\&. در حالت عادی، ابتدا باید با استفاده از \fB\-\-recover\fR تعمیر را انجام دهید، و سپس تنها در صورتی که \fB\-\-recover\fR شکست خورد از \fB\-\-safe\-recover\fR استفاده کنید\&. .sp اگر حافظه زیادی دارید، باید مقدار key_buffer_size را افزایش دهید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: set-collation option .\" set-collation option: myisamchk \fB\-\-set\-collation=\fR\fB\fIname\fR\fR .sp تطبیق (collation) مورد استفاده برای مرتب‌سازی نمایه‌های جدول را مشخص می‌کند\&. نام مجموعه نویسه (character set) از بخش نخست نام تطبیق استنباط می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: sort-recover option .\" sort-recover option: myisamchk \fB\-\-sort\-recover\fR, \fB\-n\fR .sp برنامه \fBmyisamchk\fR را وادار می‌کند تا برای حل و تفکیک کلیدها از مرتب‌سازی استفاده کند، حتی اگر فایل‌های موقت بسیار بزرگ شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: tmpdir option .\" tmpdir option: myisamchk \fB\-\-tmpdir=\fR\fB\fIpath\fR\fR, \fB\-t \fR\fB\fIpath\fR\fR .sp مسیر دایرکتوری مورد استفاده برای ذخیره‌سازی فایل‌های موقت\&. اگر این گزینه تنظیم نشده باشد، \fBmyisamchk\fR از مقدار متغیر محیطی TMPDIR استفاده می‌کند\&. tmpdir می‌تواند روی فهرستی از مسیرهای دایرکتوری تنظیم شود که به‌صورت متوالی و چرخشی (round\-robin) برای ایجاد فایل‌های موقت استفاده می‌شوند\&. نویسه جداکننده میان نام‌های دایرکتوری در Unix دونقطه (\(lq:\(rq) و در Windows، NetWare و OS/2 نقطه\-ویرگول (\(lq;\(rq) است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: unpack option .\" unpack option: myisamchk \fB\-\-unpack\fR, \fB\-u\fR .sp جدولی را که با \fBmyisampack\fR بسته‌بندی شده است، از حالت فشرده خارج می‌کند\&. .RE.SH "سایر گزینه‌های MYISAMCHK (OTHER MYISAMCHK OPTIONS)" .PP دستور \fBmyisamchk\fR از گزینه‌های زیر برای اقداماتی غیر از بررسی و تعمیر جدول‌ها پشتیبانی می‌کند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: analyze option .\" analyze option: myisamchk \fB\-\-analyze\fR, \fB\-a\fR .sp توزیع مقادیر کلید را تحلیل می‌کند\&. این کار با تواناتر ساختن بهینه‌ساز پیوند (join optimizer) در انتخاب بهتر ترتیب پیوند جدول‌ها و اندیس‌هایی که باید استفاده شوند، عملکرد پیوند (join) را بهبود می‌بخشد\&. برای به‌دست آوردن اطلاعات درباره توزیع کلید، از دستور \fBmyisamchk \-\-description \-\-verbose \fR\fB\fItbl_name\fR\fR یا عبارت SHOW INDEX FROM \fItbl_name\fR استفاده کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: block-search option .\" block-search option: myisamchk \fB\-\-block\-search=\fR\fB\fIoffset\fR\fR, \fB\-b \fR\fB\fIoffset\fR\fR .sp رکوردی را پیدا می‌کند که بلوکِ واقع در آفست (offset) داده‌شده متعلق به آن است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: description option .\" description option: myisamchk \fB\-\-description\fR, \fB\-d\fR .sp اطلاعاتی توصیفی درباره جدول چاپ می‌کند\&. مشخص کردن گزینه \fB\-\-verbose\fR به صورت یک یا دو بار، اطلاعات بیشتری تولید می‌کند\&. بخش \(lqMYISAMCHK TABLE INFORMATION\(rq را ببینید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: set-auto-increment[ option .\" set-auto-increment[ option: myisamchk \fB\-\-set\-auto\-increment[=\fR\fB\fIvalue\fR\fR\fB]\fR, \fB\-A[\fR\fB\fIvalue\fR\fR\fB]\fR .sp شماره‌گذاری AUTO_INCREMENT را برای رکوردهای جدید مجبور می‌کند از مقدار داده‌شده شروع شود (یا مقداری بیشتر، در صورتی که رکوردهایی از قبل با مقادیر AUTO_INCREMENT به این بزرگی وجود داشته باشند)\&. اگر \fIvalue\fR مشخص نشده باشد، شماره‌های AUTO_INCREMENT برای رکوردهای جدید از بزرگ‌ترین مقدار موجود در جدول به علاوه یک شروع می‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: sort-index option .\" sort-index option: myisamchk \fB\-\-sort\-index\fR, \fB\-S\fR .sp بلوک‌های درخت اندیس را به ترتیب از زیاد به کم (high\-low) مرتب می‌کند\&. این کار پویش‌ها (seeks) را بهینه‌سازی کرده و پیمایش‌های جدول (table scans) را که از اندیس‌ها استفاده می‌کنند سریع‌تر می‌سازد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: sort-records option .\" sort-records option: myisamchk \fB\-\-sort\-records=\fR\fB\fIN\fR\fR, \fB\-R \fR\fB\fIN\fR\fR .sp رکوردها را بر اساس یک اندیس خاص مرتب می‌کند\&. این کار داده‌های شما را بسیار موضعی‌تر (localized) کرده و ممکن است به عملیات‌های SELECT مبتنی بر محدوده و ORDER BY که از این اندیس استفاده می‌کنند سرعت ببخشد\&. (اولین باری که از این گزینه برای مرتب‌سازی جدول استفاده می‌کنید، ممکن است بسیار کند باشد\&.) برای تعیین شماره‌های اندیس یک جدول، از SHOW INDEX استفاده کنید که اندیس‌های جدول را به همان ترتیبی که \fBmyisamchk\fR می‌بیند نمایش می‌دهد\&. شماره‌گذاری اندیس‌ها از ۱ آغاز می‌شود\&. .sp اگر کلیدها فشرده نشده باشند (PACK_KEYS=0)، طول یکسانی دارند؛ بنابراین هنگامی که \fBmyisamchk\fR رکوردها را مرتب کرده و جابه‌جا می‌کند، صرفاً آفست‌های رکورد را در اندیس بازنویسی می‌نماید\&. اگر کلیدها فشرده باشند (PACK_KEYS=1)، \fBmyisamchk\fR باید ابتدا بلوک‌های کلید را از حالت فشرده خارج کرده، سپس اندیس‌ها را دوباره ایجاد کند و بلوک‌های کلید را مجدداً فشرده سازد\&. (در این حالت، ایجاد مجدد اندیس‌ها سریع‌تر از به‌روزرسانی آفست‌ها برای هر اندیس است\&.) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" myisamchk: stats_method option .\" stats_method option: myisamchk \fB\-\-stats\-method=name\fR .sp مشخص می‌کند که کد جمع‌آوری آمار اندیس چگونه باید با مقادیر NULL رفتار کند\&. مقادیر ممکن برای name عبارتند از "nulls_unequal" (پیش‌فرض)، "nulls_equal" (شبیه‌سازی رفتار MySQL 4)، و "nulls_ignored"\&. .RE.SH "اطلاعات جدول MYISAMCHK (MYISAMCHK TABLE INFORMATION)" .\" table description: myisamchk .\" tables: information .\" examples: myisamchk output .\" myisamchk: example output .PP برای دریافت توصیفی از یک جدول MyISAM یا آمارهای مربوط به آن، از دستورهای نشان‌داده‌شده در اینجا استفاده کنید\&. خروجی این دستورها در ادامه این بخش توضیح داده شده است\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBmyisamchk \-d \fR\fB\fItbl_name\fR\fR .sp دستور \fBmyisamchk\fR را در \(lqحالت توصیف\(rq (describe mode) اجرا می‌کند تا توصیفی از جدول شما ارائه دهد\&. اگر سرور MariaDB را با غیرفعال بودن قفل‌گذاری خارجی (external locking) اجرا کنید، ممکن است \fBmyisamchk\fR برای جدولی که در حین اجرای آن به‌روزرسانی می‌شود، خطا گزارش کند\&. با این حال، از آنجا که \fBmyisamchk\fR در حالت توصیف تغییری در جدول ایجاد نمی‌کند، هیچ خطری برای از بین رفتن داده‌ها وجود ندارد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBmyisamchk \-dv \fR\fB\fItbl_name\fR\fR .sp افزودن \fB\-v\fR باعث اجرای \fBmyisamchk\fR در حالت پرگویی (verbose) می‌شود تا اطلاعات بیشتری درباره جدول تولید کند\&. افزودن \fB\-v\fR برای بار دوم اطلاعات باز هم بیشتری تولید خواهد کرد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBmyisamchk \-eis \fR\fB\fItbl_name\fR\fR .sp تنها مهم‌ترین اطلاعات یک جدول را نمایش می‌دهد\&. این عملیات کُند است زیرا باید تمام جدول را بخواند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBmyisamchk \-eiv \fR\fB\fItbl_name\fR\fR .sp این گزینه مشابه \fB\-eis\fR عمل می‌کند، اما مراحل انجام کار را نیز گزارش می‌دهد\&. .RE .PP آرگومان \fItbl_name\fR می‌تواند نام یک جدول MyISAM یا نام فایل نمایه (index file) آن باشد، همان‌گونه که در \fBmyisamchk\fR(1) توضیح داده شده است\&. همچنین می‌توان چندین آرگومان \fItbl_name\fR را وارد کرد\&. .PP فرض کنید جدولی به نام person دارای ساختار زیر باشد\&. (گزینه جدول MAX_ROWS به این دلیل گنجانده شده است تا در خروجی نمونه \fBmyisamchk\fR که در ادامه آمده، برخی مقادیر کوچک‌تر شده و خوانایی قالب خروجی راحت‌تر باشد\&.) .sp .if n \{\ .RS 4 .\} .nf 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; .fi .if n \{\ .RE .\} .PP همچنین فرض کنید اندازه فایل‌های داده و نمایه جدول به صورت زیر باشد: .sp .if n \{\ .RS 4 .\} .nf \-rw\-rw\-\-\-\- 1 mysql mysql 9347072 Aug 19 11:47 person\&.MYD \-rw\-rw\-\-\-\- 1 mysql mysql 6066176 Aug 19 11:47 person\&.MYI .fi .if n \{\ .RE .\} .PP نمونه‌ای از خروجی \fBmyisamchk \-dvv\fR: .sp .if n \{\ .RS 4 .\} .nf 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 .fi .if n \{\ .RE .\} .PP توضیحات مربوط به انواع اطلاعاتی که \fBmyisamchk\fR تولید می‌کند در ادامه آورده شده است\&. \(lqKeyfile\(rq به فایل نمایه (index file) اشاره دارد\&. \(lqRecord\(rq و \(lqrow\(rq مترادف یکدیگرند، همان‌طور که \(lqfield\(rq و \(lqcolumn\(rq نیز هم‌معنی هستند\&. .PP بخش ابتدایی توصیف جدول شامل این مقادیر است:.sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} فایل MyISAM .sp نام فایل MyISAM (شاخص)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} قالب رکورد (Record format) .sp قالب استفاده‌شده برای ذخیره ردیف‌های جدول\&. مثال‌های قبلی از Fixed length استفاده می‌کنند\&. سایر مقادیر ممکن عبارت‌اند از Compressed و Packed\&. (مقدار Packed مطابق با چیزی است که SHOW TABLE STATUS به‌عنوان Dynamic گزارش می‌دهد\&.) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} مجموعه نویسه (Character set) .sp مجموعه نویسهٔ پیش‌فرض جدول\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} نسخه فایل (File\-version) .sp نسخهٔ قالب MyISAM\&. در حال حاضر همیشه 1 است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} زمان ایجاد (Creation time) .sp زمانی که فایل داده ایجاد شده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} زمان بازیابی (Recover time) .sp زمانی که فایل شاخص/داده آخرین بار بازسازی شده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} وضعیت (Status) .sp پرچم‌های وضعیت جدول\&. مقادیر ممکن عبارت‌اند از: crashed، open، changed، analyzed، optimized keys و sorted index pages\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} کلید Auto increment، آخرین مقدار (Last value) .sp شماره کلید مرتبط با ستون AUTO_INCREMENT جدول، و تازه‌ترین مقدار تولیدشده برای این ستون\&. در صورتی که چنین ستونی وجود نداشته باشد، این فیلدها ظاهر نمی‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} رکوردهای داده (Data records) .sp تعداد ردیف‌های موجود در جدول\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} بلوک‌های حذف‌شده (Deleted blocks) .sp تعداد بلوک‌های حذف‌شده‌ای که هنوز فضای رزروشده دارند\&. برای به حداقل رساندن این فضا می‌توانید جدول خود را بهینه‌سازی کنید\&. ببینید: بخش\ \&6.6.4، \(lqMyISAM Table Optimization\(rq\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} بخش‌های فایل داده (Datafile parts) .sp برای قالب ردیف پویا (dynamic\-row)، این مقدار نشان‌دهنده تعداد بلوک‌های داده موجود است\&. برای یک جدول بهینه‌سازی‌شده بدون ردیف‌های تکه‌تکه‌شده (fragmented)، این مقدار با Data records یکسان است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} داده‌های حذف‌شده (Deleted data) .sp میزان بایت‌های داده‌های حذف‌شده که هنوز آزاد نشده‌اند\&. برای به حداقل رساندن این فضا می‌توانید جدول خود را بهینه‌سازی کنید\&. ببینید: بخش\ \&6.6.4، \(lqMyISAM Table Optimization\(rq\&. .RE.sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اشاره‌گر فایل داده (Datafile pointer) .sp اندازهٔ اشاره‌گر فایل داده، به بایت\&. این مقدار معمولاً ۲، ۳، ۴ یا ۵ بایت است\&. بیشتر جدول‌ها با ۲ بایت کار می‌کنند، اما این مورد هنوز از سمت MariaDB قابل کنترل نیست\&. برای جدول‌های ثابت (fixed)، این مقدار یک نشانی سطر است\&. برای جدول‌های پویا (dynamic)، این مقدار یک نشانی بایت است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اشاره‌گر فایل کلید (Keyfile pointer) .sp اندازهٔ اشاره‌گر فایل شاخص، به بایت\&. این مقدار معمولاً ۱، ۲ یا ۳ بایت است\&. بیشتر جدول‌ها با ۲ بایت کار می‌کنند، اما این مقدار به‌طور خودکار توسط MariaDB محاسبه می‌شود\&. این همیشه نشانی یک بلوک است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} حداکثر طول فایل داده (Max datafile length) .sp حداکثر طولی که فایل دادهٔ جدول می‌تواند داشته باشد، به بایت\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} حداکثر طول فایل کلید (Max keyfile length) .sp حداکثر طولی که فایل شاخص جدول می‌تواند داشته باشد، به بایت\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} طول رکورد (Recordlength) .sp میزان فضایی که هر سطر اشغال می‌کند، به بایت\&. .RE .PP بخش table description از خروجی شامل فهرستی از تمام کلیدهای جدول است\&. برای هر کلید، \fBmyisamchk\fR برخی اطلاعات سطح‌پایین را نمایش می‌دهد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} کلید (Key) .sp شمارهٔ این کلید\&. این مقدار تنها برای ستون اول کلید نمایش داده می‌شود\&. اگر این مقدار وجود نداشته باشد، سطر مربوط به ستون دوم یا ستون‌های بعدیِ یک کلید چندستونی است\&. برای جدول نشان‌داده‌شده در مثال، دو سطرِ table description برای شاخص دوم وجود دارد\&. این نشان می‌دهد که آن یک شاخص چندبخشی با دو بخش است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} شروع (Start) .sp این بخش از شاخص در کجای سطر آغاز می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} طول (Len) .sp طول این بخش از شاخص\&. برای اعداد فشرده (packed)، این مقدار همیشه باید برابر با طول کامل ستون باشد\&. برای رشته‌ها، ممکن است از طول کامل ستون شاخص‌گذاری‌شده کوتاه‌تر باشد، زیرا می‌توانید پیشوندی از یک ستون رشته‌ای را شاخص‌گذاری کنید\&. طول کل یک کلید چندبخشی، مجموع مقادیر Len برای تمام بخش‌های کلید است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} شاخص (Index) .sp آیا یک مقدار کلید می‌تواند چندین بار در شاخص تکرار شود یا خیر\&. مقادیر ممکن عبارت‌اند از unique یا multip\&. (چندگانه)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} نوع (Type) .sp این بخش از شاخص چه نوع داده‌ای دارد\&. این یک نوع دادهٔ MyISAM است با مقادیر ممکنِ packed، stripped یا empty\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ریشه (Root) .sp نشانی بلوک ریشهٔ شاخص\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اندازهٔ بلوک (Blocksize) .sp اندازهٔ هر بلوک شاخص\&. این مقدار به‌طور پیش‌فرض ۱۰۲۴ است، اما هنگام ساخت MariaDB از کد منبع، این مقدار ممکن است در زمان کامپایل تغییر یابد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\.sp -1 .IP \(bu 2.3 .\} Rec/key .sp این یک مقدار آماری است که توسط بهینه‌ساز استفاده می‌شود\&. این مقدار مشخص می‌کند به ازای هر مقدار در این نمایه، چند سطر وجود دارد\&. یک نمایهٔ یکتا همواره مقداری برابر با 1 دارد\&. این مقدار ممکن است پس از بارگذاری جدول (یا تغییرات عمده در آن) با \fBmyisamchk \-a\fR به‌روزرسانی شود\&. اگر به‌هیچ‌وجه به‌روزرسانی نشود، مقدار پیش‌فرض 30 در نظر گرفته می‌شود\&. .RE .PP بخش پایانی خروجی، اطلاعاتی دربارهٔ هر ستون ارائه می‌دهد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Field .sp شمارهٔ ستون\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Start .sp موقعیت بایتی ستون در سطرهای جدول\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Length .sp طول ستون به بایت\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Nullpos, Nullbit .sp برای ستون‌هایی که می‌توانند NULL باشند، MyISAM مقادیر NULL را به صورت یک پرچم درون یک بایت ذخیره می‌کند\&. بسته به اینکه چه تعداد ستون با قابلیت پذیرش NULL وجود دارد، ممکن است یک یا چند بایت برای این منظور استفاده شود\&. مقادیر Nullpos و Nullbit در صورت خالی نبودن، مشخص می‌کنند کدام بایت و بیت حاوی پرچمی است که نشان می‌دهد آیا ستون NULL است یا خیر\&. .sp موقعیت و تعداد بایت‌های مورد استفاده برای ذخیرهٔ پرچم‌های NULL در خط مربوط به فیلد 1 نشان داده شده است\&. به همین دلیل است که برای جدول person با وجود داشتن تنها پنج ستون، شش خط Field وجود دارد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Type .sp نوع داده\&. این مقدار ممکن است شامل هر یک از توصیف‌کننده‌های زیر باشد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} constant .sp تمام سطرها مقدار یکسانی دارند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} no endspace .sp فضای خالی پایانی ذخیره نشود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} no endspace, not_always .sp فضای خالی پایانی ذخیره نشود و فشرده‌سازی فضای خالی پایانی برای همهٔ مقادیر انجام نگیرد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} no endspace, no empty .sp فضای خالی پایانی ذخیره نشود\&. مقادیر خالی ذخیره نشوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} table\-lookup .sp ستون به یک ENUM تبدیل شد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} zerofill(\fIN\fR) .sp پُرارزش‌ترین \fIN\fR بایت در مقدار همواره 0 هستند و ذخیره نمی‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\.sp -1 .IP \(bu 2.3 .\} no zeros .sp صفرها را ذخیره نمی‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} always zero .sp مقادیر صفر با استفاده از یک بیت ذخیره می‌شوند\&. .RE .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Huff tree .sp شماره درخت هافمن (Huffman tree) مرتبط با ستون\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Bits .sp تعداد بیت‌های استفاده‌شده در درخت هافمن\&. .RE .PP فیلدهای Huff tree و Bits در صورتی نمایش داده می‌شوند که جدول با \fBmyisampack\fR فشرده شده باشد\&. برای نمونه‌ای از این اطلاعات، \fBmyisampack\fR(1) را ببینید\&. .PP نمونه‌ای از خروجی \fBmyisamchk \-eiv\fR: .sp .if n \{\ .RS 4 .\} .nf 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 \fI*** LOTS OF ROW NUMBERS DELETED ***\fR 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) .fi .if n \{\ .RE .\} .PP خروجی \fBmyisamchk \-eiv\fR شامل اطلاعات زیر است: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Data records .sp تعداد ردیف‌های موجود در جدول\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deleted blocks .sp چه تعداد از بلوک‌های حذف‌شده همچنان فضای رزروشده دارند\&. می‌توانید جدول خود را بهینه‌سازی کنید تا این فضا به حداقل برسد\&. بخش\ \&6.6.4، \(lqMyISAM Table Optimization\(rq را ببینید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Key .sp شماره کلید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Keyblocks used .sp چند درصد از بلوک‌های کلید استفاده شده‌اند\&. هنگامی که یک جدول به‌تازگی با \fBmyisamchk\fR بازسازماندهی شده باشد، این مقادیر بسیار بالا هستند (بسیار نزدیک به حداکثر نظری)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Packed .sp برنامه MariaDB تلاش می‌کند مقادیر کلیدی را که پسوند مشترک دارند فشرده‌سازی (pack) کند\&. این قابلیت تنها برای نمایه‌ها (indexes) روی ستون‌های CHAR و VARCHAR قابل استفاده است\&. برای رشته‌های نمایه‌گذاری‌شده طولانی که بخش‌های ابتدایی (سمت چپ) مشابهی دارند، این کار می‌تواند فضای استفاده‌شده را به‌طور چشمگیری کاهش دهد\&. در مثال پیشین، کلید دوم 40 بایت طول دارد و 97% کاهش فضا به‌دست آمده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Max levels.sp میزان عمق درخت B\-tree برای این کلید\&. جدول‌های بزرگ با مقادیر کلید طولانی، مقادیر بالاتری دریافت می‌کنند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Records .sp چه تعداد ردیف در جدول وجود دارد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} M\&.recordlength .sp میانگین طول ردیف\&. این مقدار برای جدول‌های با ردیف‌های با طول ثابت، طول دقیق ردیف است، زیرا تمام ردیف‌ها طول یکسانی دارند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Packed .sp ‏MariaDB فاصله‌های خالی را از انتهای رشته‌ها حذف می‌کند\&. مقدار Packed نشان‌دهنده درصد صرفه‌جویی حاصل از این کار است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Recordspace used .sp چند درصد از فایل داده مورد استفاده قرار گرفته است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Empty space .sp چند درصد از فایل داده استفاده‌نشده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Blocks/Record .sp میانگین تعداد بلوک‌ها در هر ردیف (یعنی یک ردیف قطعه‌قطعه‌شده از چند پیوند تشکیل شده است)\&. این مقدار برای جدول‌های با قالب ثابت همواره 1\&.0 است\&. این مقدار باید تا حد ممکن نزدیک به 1\&.0 باقی بماند\&. اگر بیش از اندازه بزرگ شد، می‌توانید جدول را بازسازماندهی کنید\&. ببینید: بخش\ \&6.6.4، \(lqبهینه‌سازی جدول‌های MyISAM\(rq\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Recordblocks .sp چه تعداد بلوک (پیوند) استفاده شده است\&. برای جدول‌های با قالب ثابت، این مقدار برابر با تعداد ردیف‌ها است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deleteblocks .sp چه تعداد بلوک (پیوند) حذف شده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Recorddata .sp چه تعداد بایت از فایل داده استفاده شده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deleted data .sp چه تعداد بایت در فایل داده حذف شده (استفاده‌نشده) است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Lost space .sp اگر طول یک ردیف پس از به‌روزرسانی کوتاه‌تر شود، مقداری فضا هدر می‌رود\&. این مقدار مجموع تمام این اتلاف‌ها برحسب بایت است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Linkdata .sp هنگامی که از قالب جدول پویا استفاده می‌شود، قطعات ردیف با اشاره‌گرها (هرکدام ۴ تا ۷ بایت) به یکدیگر پیوند داده می‌شوند\&. Linkdata مجموع فضای ذخیره‌سازی استفاده‌شده توسط تمام این اشاره‌گرها است\&. .RE.SH "میزان مصرف حافظه MYISAMCHK (MYISAMCHK MEMORY USAGE)" .\" memory usage: myisamchk .PP تخصیص حافظه هنگام اجرای \fBmyisamchk\fR بسیار حائز اهمیت است\&. \fBmyisamchk\fR بیشتر از مقداری که برای متغیرهای مرتبط با حافظهٔ آن تنظیم شده است، حافظه مصرف نمی‌کند\&. اگر قصد دارید از \fBmyisamchk\fR روی جدول‌های بسیار بزرگ استفاده کنید، ابتدا باید مشخص کنید که مایلید چه مقدار حافظه مصرف کند\&. مقدار پیش‌فرض برای انجام عملیات تعمیر تنها حدود ۳ مگابایت است\&. با استفاده از مقادیر بزرگ‌تر، می‌توانید کاری کنید که \fBmyisamchk\fR سریع‌تر عمل کند\&. برای نمونه، اگر بیش از ۳۲ مگابایت رم (RAM) دارید، می‌توانید از گزینه‌هایی مانند این موارد استفاده کنید (علاوه بر هر گزینهٔ دیگری که ممکن است مشخص نمایید): .sp .if n \{\ .RS 4 .\} .nf shell> \fBmyisamchk \-\-sort_buffer_size=16M \e\fR \fB\-\-key_buffer_size=16M \e\fR \fB\-\-read_buffer_size=1M \e\fR \fB\-\-write_buffer_size=1M \&.\&.\&.\fR .fi .if n \{\ .RE .\} .PP استفاده از \fB\-\-sort_buffer_size=16M\fR احتمالاً برای بیشتر موارد کافی خواهد بود\&. .PP توجه داشته باشید که \fBmyisamchk\fR از فایل‌های موقت در TMPDIR استفاده می‌کند\&. اگر TMPDIR به یک فایل‌سیستم مستقر در حافظه رم اشاره کند، خطاهای کمبود حافظه (out of memory) به‌سادگی ممکن است رخ دهند\&. در صورت بروز این مشکل، \fBmyisamchk\fR را همراه با گزینهٔ \fB\-\-tmpdir=\fR\fB\fIpath\fR\fR اجرا کنید تا دایرکتوری واقع روی یک فایل‌سیستم با فضای بیشتر مشخص شود\&. .PP هنگام انجام عملیات تعمیر، \fBmyisamchk\fR به مقدار زیادی فضای دیسک نیز نیاز دارد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} دو برابر اندازهٔ فایل داده (فایل اصلی و یک نسخهٔ رونوشت)\&. در صورتی که تعمیر را با گزینهٔ \fB\-\-quick\fR انجام دهید نیازی به این فضا نیست؛ در این حالت، فقط فایل نمایه (index) مجدداً ایجاد می‌شود\&. \fIاین فضا باید روی همان فایل‌سیستمی که فایل داده اصلی قرار دارد در دسترس باشد\fR، چرا که رونوشت در همان دایرکتوری فایل اصلی ایجاد می‌گردد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} فضا برای فایل نمایه جدید که جایگزین فایل قدیمی می‌شود\&. فایل نمایه قدیمی در ابتدای عملیات تعمیر کوتاه (truncate) می‌شود، بنابراین معمولاً می‌توانید از این فضا صرف‌نظر کنید\&. این فضا باید روی همان فایل‌سیستمی که فایل داده اصلی قرار دارد در دسترس باشد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} هنگام استفاده از \fB\-\-recover\fR یا \fB\-\-sort\-recover\fR (اما نه هنگام استفاده از \fB\-\-safe\-recover\fR)، به فضا روی دیسک برای مرتب‌سازی نیاز دارید\&. این فضا در دایرکتوری موقت (مشخص‌شده با TMPDIR یا \fB\-\-tmpdir=\fR\fB\fIpath\fR\fR) تخصیص می‌یابد\&. فرمول زیر مقدار فضای مورد نیاز را به دست می‌دهد: .sp .if n \{\ .RS 4 .\} .nf (\fIlargest_key\fR + \fIrow_pointer_length\fR) \(mu \fInumber_of_rows\fR \(mu 2 .fi .if n \{\ .RE .\} .sp می‌توانید طول کلیدها و مقدار \fIrow_pointer_length\fR را با دستور \fBmyisamchk \-dv \fR\fB\fItbl_name\fR\fR بررسی کنید (بخش \(lqMYISAMCHK TABLE INFORMATION\(rq را ببینید)\&. مقادیر \fIrow_pointer_length\fR و \fInumber_of_rows\fR همان مقادیر Datafile pointer و Data records در توضیحات جدول هستند\&. برای تعیین مقدار \fIlargest_key\fR، خطوط Key را در توضیحات جدول بررسی کنید\&. ستون Len نشان‌دهندهٔ تعداد بایت‌ها برای هر بخش از کلید است\&. برای یک نمایه چندستونه، اندازه کلید برابر با مجموع مقادیر Len برای تمام بخش‌های کلید است\&. .RE .PP اگر در طول تعمیر با کمبود فضای دیسک مواجه شدید، می‌توانید به جای \fB\-\-recover\fR گزینهٔ \fB\-\-safe\-recover\fR را امتحان کنید\&..SH "کپی‌رایت و تکثیر (COPYRIGHT)" .br .PP کپی‌رایت 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc., 2010-2025 MariaDB Foundation .PP این مستندات یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تنها تحت شرایط «مجوز عمومی همگانی گنو» (GNU General Public License) همان‌طور که توسط بنیاد نرم‌افزار آزاد منتشر شده است، بازتوزیع کرده یا تغییر دهید؛ نسخه ۲ مجوز. .PP این مستندات به این امید که مفید واقع شود توزیع شده است، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به GNU General Public License مراجعه کنید. .PP شما باید به همراه این برنامه نسخه‌ای از GNU General Public License را دریافت کرده باشید؛ در غیر این صورت، به Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA نامه بنویسید یا از http://www.gnu.org/licenses بازدید کنید. .sp .SH "همچنین ببینید (SEE ALSO)" برای اطلاعات بیشتر، لطفاً به مستندات MariaDB مراجعه کنید که به‌صورت برخط در https://mariadb.com/docs در دسترس است. .SH "نویسندگان (AUTHORS)" MariaDB Foundation (http://www.mariadb.org).