MySQL執行計畫不準確 -概述,mysql執行計畫

來源:互聯網
上載者:User

MySQL執行計畫不準確 -概述,mysql執行計畫


為毛 MySQL最佳化器的執行計畫 好多時候都不準確,不是最優的呢(cpu+io)???

因素太多了:: 


存在information_schema的資訊是定期重新整理上去的,好多時候不是最真的,甚至相差好大(非高山峰時好好利用一下analyze table等);


現在一個企業有錢沒地方花,買一大堆固態磁碟,碰巧非智能的MySQL不能很好滴跟上硬體最佳化的節奏,可能超過一部分的選擇原理就不怎麼準確了(這點相信其他資料庫也是痛點吧);


環境因素/

配置因素

等等 ...



mysql 執行計畫

mysql5.1以後有一個叫做event的命令。當到達指定時間就會執行你預先寫好的sql語句。應該適合你用。
下面是我前幾天寫的一個event句子正好用到,給你舉個例子,需要的地方你自己修改一下
delimiter |

create event `event1`
on schedule
at '2012-11-27 18:05:00'
do
begin

UPDATE limit_master
SET
limit_value = 2,
upd_date = now()
WHERE
limit_code = 0;

end |
delimiter ;
這些是最基本的,我只是指定了時間。並且是一次執行,如果是每天執行的話在時間那裡改為every + 你想要的時間(例如every 1 day / every 1 hour)。
詳細參照mysql手冊,那裡是最詳細的
 
怎看MYSQL的SQL執行計畫?用explain?怎看MYSQL的執行計畫具體是怎意思?

使用explain, MySQL將解釋它如何處理SELECT,提供有關表如何聯結和聯結的次序。你可以看到索引是不是正確使用了,根據這個來調整你的sql語句或者索引的建立。
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.