欢迎投稿

今日深度:

MySQL执行计划不准确 -概述,mysql执行计划

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语句或者索引的建立。
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2620.html NewsArticle MySQL执行计划不准确 -概述,mysql执行计划 为毛 MySQL优化器的执行计划 好多时候都不准确,不是最优的呢(cpuio)??? 因素太多了:: 存在information_schema的信息是定期刷新上去的,...
评论暂时关闭