10 کانفیگ بهینه سازی MySQL پس از نصب

توجه: این آموزش برای MySQL 5.7 می باشد !

امروز در قائم هاست با این آموزش قصد داریم به بحث در مورد ده تنظیمات تنظیمات عملکرد MySQL که شما می توانید بعد از نصب نصب کنید.

وقتی ما برای حسابرسی عملکرد MySQL استخدام میشویم، انتظار میرود پیکربندی MySQL را بررسی کنیم و پیشنهادات بهبود را بررسی کنیم. بسیاری از مردم از این موضوع شگفت زده شده اند، زیرا در اغلب موارد، ما تنها پیشنهاد تغییر چند تنظیمات عملکرد خروجی MySQL را پس از نصب – حتی اگر صدها گزینه وجود دارد. هدف این پست، فهرستی از برخی از مهمترین تنظیمات را به شما ارائه می دهد.

 

10 کانفیگ بهینه سازی MySQL پس از نصب

10 کانفیگ بهینه سازی MySQL پس از نصب


ما قبلا چندین سال پیش این پیشنهادات را در این وبلاگ در این وبلاگ گذاشته ایم اما از آن زمان چیزهای زیادی در جهان MySQL تغییر کرده است!
قبل از اینکه شروع کنیم…

حتی افراد باتجربه می توانند اشتباهاتی ایجاد کنند که می تواند موجب مشکلات بسیاری شود. بنابراین قبل از کورکورانه توصیه های این پست، لطفا به نکات زیر توجه داشته باشید:

یک تنظیم را در یک زمان تغییر دهید این تنها راه پیش بینی شده است اگر یک تغییر مفید باشد.

اکثر تنظیمات را می توان در زمان اجرا با SET GLOBAL تغییر داد. این بسیار مفید است و به شما این امکان را می دهد که اگر هر مشکلی را ایجاد می کنید، به سرعت تغییر دهید. اما در آخر، شما می خواهید این تنظیم را به طور دائمی در فایل پیکربندی تنظیم کنید.
تغییر در پیکربندی حتی پس از راه اندازی مجدد MySQL قابل مشاهده نیست؟ آیا از پرونده پیکربندی درست استفاده کردید؟ آیا تنظیم را در قسمت راست قرار داده اید؟ (همه تنظیمات این پست متعلق به بخش [mysqld] هستند)
سرور پس از یک تغییر از شروع شروع می کند: آیا از واحد درست استفاده کردید؟ به عنوان مثال، innodb_buffer_pool_size باید در بایت ها تنظیم شود در حالی که max_connection بدون بعد است.
اجازه ندهید تنظیمات تکراری در فایل پیکربندی. اگر می خواهید تغییرات را دنبال کنید، از کنترل نسخه استفاده کنید.
ریاضی ساده و بی روح را نداشته باشید، مانند “سرور جدید من دارای 2x رم است، من فقط تمام مقادیر را دو برابر آنهایی که قبلا ساخته شده است، انجام می دهم”.

تنظیمات پایه

در اینجا 3 تنظیمات عملکرد خروجی MySQL وجود دارد که همیشه باید در آن نگاه کنید. اگر این کار را نکنید، احتمالا خیلی سریع به مشکل خواهید خورد.

innodb_buffer_pool_size: این تنظیم # 1 است که برای هر نصب با استفاده از InnoDB نگاه کنید. استحکام بافر است که در آن داده ها و شاخص ها ذخیره می شوند: داشتن آن به اندازه بزرگ ممکن است اطمینان حاصل شود که از حافظه و دیسک ها برای اکثر عملیات خواندن استفاده می کنید. مقادیر معمول 5-6 گیگابایت رم (8 گیگابایت رم)، 20 تا 25 گیگابایت رم (32 گیگابایت رم)، 100 تا 120 گیگابایت رم (128 گیگابایت رم).

innodb_log_file_size: این اندازه مجلات مجدد است. سیاهههای مربوط به مجددا استفاده می شود تا مطمئن شود که نوشتن سریع و با دوام و همچنین در هنگام بازیابی تصادف است. تا MySQL 5.1، تنظیم شد سخت بود، زیرا شما می خواستید هر دو سیاهههای مربوط به مجدد بزرگ برای عملکرد خوب و سیاهههای مربوط به مجدد کمی برای بازیابی سریع تصادف. خوشبختانه عملکرد بازیابی تصادفات بسیار زیاد از MySQL 5.5 بهبود یافته است، بنابراین شما هم اکنون می توانید عملکرد نوشتن خوب و بازیابی سریع تصادف را داشته باشید. تا زمانیکه MySQL 5.5 حجم مجدد مجدد مجله را تا 4 گیگابایت محدود کرد (پیش فرض این است که 2 فایل log داشته باشد). این در MySQL 5.6 حذف شده است.

شروع کردن با innodb_log_file_size = 512 مگابایت (دادن 1 گیگابایت سیاهههای مربوط به مجله) باید به شما مقدار زیادی از نوشته ها بدهد. اگر می دانید نرم افزار شما فشرده است و شما از MySQL 5.6 استفاده می کنید، می توانید با innodb_log_file_size = 4G شروع کنید.

max_connections: اگر اغلب با خطای “بیش از حد بسیاری از اتصالات” روبرو هستید، max_connections خیلی پایین است. این بسیار مکرر است زیرا برنامه به طور صحیح ارتباطات را به پایگاه داده نزدیک نمی کند، شما نیاز به خیلی بیشتر از اتصالات پیش فرض 151 دارید. اشکال اصلی مقادیر بالا برای max_connections (مثل 1000 یا بیشتر) این است که سرور به هیچ وجه پاسخگو نخواهد شد، زیرا به هر دلیلی باید 1000 یا بیشتر از معاملات فعال باشد. با استفاده از یک استخر اتصال در سطح برنامه و یا یک باند موضوع در سطح خروجی زیر می تواند در اینجا کمک کند.

 

10 کانفیگ بهینه سازی MySQL پس از نصب

10 کانفیگ بهینه سازی MySQL پس از نصب

 

تنظیمات InnoDB

InnoDB موتور پیش فرض ذخیره سازی از MySQL 5.5 بوده و از بسیاری از موتورهای ذخیره سازی دیگر بسیار بیشتر استفاده می شود. به همین دلیل است که باید با دقت پیکربندی شود.

innodb_file_per_table: این تنظیم InnoDB را در صورت نیاز باید داده ها و شاخص ها را در sharepace shared (innodb_file_per_table = OFF) یا در یک فایل جداگانه .IBD برای هر جدول (innodb_file_per_table = ON) ذخیره کند. داشتن یک پرونده در هر میز اجازه می دهد تا فضای خود را در هنگام رها کردن، خرد کردن یا بازسازی یک جدول بازپرداخت کنید. همچنین برای برخی از ویژگی های پیشرفته مانند فشرده سازی مورد نیاز است. با این وجود هیچ مزیت عملکردی را ارائه نمی دهد. سناریوی اصلی زمانی که شما نمیخواهید فایل در هر جدول باشد، تعداد دفعاتی که تعداد زیادی از جداول وجود دارد (say 10k +).

با MySQL 5.6، مقدار پیش فرض ON است، بنابراین در اغلب موارد شما هیچ کاری نمی کنید. برای نسخه های قبلی، شما باید آن را قبل از بارگیری داده ها بر روی ON تنظیم کنید، زیرا آن فقط بر روی جداول تازه ایجاد شده تاثیر می گذارد.

innodb_flush_log_at_trx_commit: تنظیم پیش فرض 1 به این معنی است که InnoDB کاملا ACID سازگار است. این بهترین ارزش زمانی است که نگرانی اصلی شما امنیت اطلاعات است، به عنوان مثال در استاد. با این حال می توان در سیستم های با دیسک های آرام به دلیل اضافی fsyncs هایی که برای تغییر هر تغییر به سیاهههای مربوط به مجدد نیاز است، می تواند سربار قابل توجهی داشته باشد. تنظیم آن به 2 کمی کمتر قابل اعتماد است زیرا تراکنش های متعهد تنها به یک بار در ثانیه مجددا به سیاهه ها مجددا تحویل داده می شود، اما در بعضی موقعیت ها برای یک استاد قابل قبول است و قطعا یک مقدار مناسب برای ماکت است. 0 حتی سریعتر است، اما احتمال دارد برخی از داده ها را در صورت خرابی خراب کند: فقط یک مقدار خوب برای ماکت است.

innodb_flush_method: این تنظیمات نحوه کنترل داده ها و سیاهههای مربوط به دیسک را کنترل می کند. مقادیر محبوب O_DIRECT زمانی است که شما یک کنترلر RAID سخت افزاری با یک حافظه ذخیره شده باتری محافظت شده و fdatasync (مقدار پیش فرض) برای اکثر سناریوهای دیگر داشته باشید. sysbench یک ابزار خوب برای کمک به انتخاب بین دو ارزش است.

innodb_log_buffer_size: این اندازه بافر برای معاملات است که هنوز متعهد نیستند. مقدار پیش فرض (1 مگابایت) معمولا خوب است، اما به محض این که شما با تراکنش های با سطوح بزرگ / متن، بافر می تواند بسیار سریع پر شود و باعث افزایش بار اضافی I / O شود. به تغییر وضعیت Innodb_log_waats نگاه کنید و اگر 0 نیست، innodb_log_buffer_size را افزایش دهید.

تنظیمات دیگر

query_cache_size: ذخیره سازی پرس و جو یک گلوگاه شناخته شده است که می توان آن را حتی زمانی مشاهده کرد که تقارن متوسط ​​است. بهترین گزینه این است که آن را از روز 1 تنظیم کنید با تنظیم query_cache_size = 0 (در حال حاضر به طور پیش فرض در MySQL 5.6) و استفاده از راه های دیگر برای سرعت بخشیدن به خواندن نمایش داده شد: خوب فهرست گذاری، اضافه کردن کپی برای گسترش بار خوانده شده و یا با استفاده از حافظه خارجی memcache یا redis به عنوان مثال). اگر شما قبلا برنامه MySQL خود را با کوئری پرس و جوی فعال کرده اید و اگر هرگز متوجه هیچ مشکلی نباشید، ذخیره سازی پرس و جو ممکن است برای شما سودمند باشد. بنابراین اگر تصمیم به غیر فعال شدن آن دارید، باید محتاط باشید.

log_bin: فعال کردن ثبت دودویی اجباری است اگر شما می خواهید سرور به عنوان استاد تکثیر کار کند. اگر چنین است، فراموش نکنید سرور_ید را به مقدار منحصر به فرد تنظیم کنید. همچنین هنگامی که می خواهید قادر به انجام بازیابی نقطه در زمان باشید، برای یک سرور مجرب مفید است: بازگرداندن آخرین نسخه پشتیبان و اعمال زبانه های دودویی. پس از ایجاد، فایل های ورودی باینری برای همیشه نگه داشته می شوند. بنابراین اگر نمی خواهید از فضای دیسک خارج شوید، باید پرونده های قدیمی را با PURGE BINARY LOGS پاکسازی کنید یا expire_logs_days را تعیین کنید تا پس از چند روز، سیاهههای مربوطه به صورت خودکار پاک شوند.

ورود به سیستم باینری با این حال رایگان نیست، بنابراین اگر شما به عنوان مثال در یک ماکت است که یک استاد نیست، توصیه می شود که آن را غیر فعال کنید.

skip_name_resolve: زمانی که یک سرویس دهنده متصل شود، سرور وضوح میزبان را انجام می دهد، و هنگامی که DNS آهسته باشد، ایجاد اتصال نیز کند خواهد شد. بنابراین توصیه می شود سرور را با نام skip-name-resolut شروع کنید تا تمام جستجو های DNS را فعال کنید. تنها محدودیت این است که اعلان GRANT باید از آدرس های IP استفاده کند، بنابراین هنگام اضافه کردن این تنظیم به یک سیستم موجود مراقب باشید.

نتیجه

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

باخرید سرور مجازی ایران از قائم هاست میتوانید یک سرور فوق العاده پرسرعت و با کیفیت و ارزان داشته باشید و نصب و بهینه سازی mysql سرور شما توسط قائم هاست بصورت رایگان انجام می شود.

این صفحه چطور بود؟ post