PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : پیدا کردن کوئری های کند کننده در mysql



Hippo
September 20th, 2012, 00:30
MySQL می تواند کوئری هایی ( queries ) که از یک مدت زمان مشخص مانند X طولانی تر می شود، را ثبت نماید و یا اصطلاحا Log کند. این امکان در حالت اولیه ( default ) غیر فعال می باشد. همانطور که می دانید کوئری های کند mysql منجر به کند شدن سرور شما می گردند.


* تذکر مهم: اگر شما از سرور مجازی استفاده می کنید، همین لاگ کردن می تواند منجر به افزایش مصرف شما از منابع سرور گردد و جدای از آن حجم بالایی را با ذخیره لاگ فایل ها در سرور شما اشغال می نماید، پس اگر به فعال سازی آن اقدام نمودید، می بایست توجه خود را دو چندان کنید و کار بهتر آنست که تنها به هنگام نیاز از آن استفاده کنید.

چنانچه تمایل به فعال سازی آن دارید کافی است مراحل زیر را دنبال نمائید:




1. از طریق نرم افزار پیوتی به سرور خود وصل شوید.

( می توانید از این لینک استفاده کنید: اتصال به ssh از طریق نرم افزار putty (http://parspack.com/the-news/143-putty-ssh) )




2. فایل زیر را با یکی از نرم افزارهای ویرایش گر روی سرور خود مانند vi یا vim یا nano باز نمائید:

/etc/my.cnf

مانند دستور زیر:

[root@localhost ~]#vi /etc/my.cnf

در بخشی که در بالای آن عبارت [mysqld] نوشته شده است، موارد زیر را وارد نمائید:

log_slow_queries=/var/log/mysql_slow_queries.log
long_query_time = 2

فایل مربوطه را save نمائید و خارج شوید.

بنابراین لاگ فایل ، کوئری هایی که بیش از 2 ثانیه زمان می گیرند در فایل var/log/mysql-slow.log ذخیره می شود.




3. لاگ فایل را با دستور زیر بسازید:

[root@localhost ~]# touch /var/log/mysql_slow_queries.log




4. مالکیت آن را تغییر دهید:

[root@localhost ~]#chown mysql.root /var/log/mysql_slow_queries.log




5. سرویس mysql خود را مجدد راه اندازی کنید:

[root@localhost ~]#service mysql restart




6. حالا می توانید کوئری های کند را مشاهده نمائید، "حتما از دستور زیر استفاده کنید"، چرا که ممکن است فایل مربوطه خیلی طولانی و حجیم باشد:

[root@localhost ~]#tail -f /var/log/mysql_slow_queries.log




* حال می توانید کوئری های کند ( Slow query ) را شناسایی و برای بهینه سازی یا حذف آن اقدام نمائید.