高性能的MySQL(2)慢查询
发布时间:2016-01-13 19:33:20 所属栏目:MySql教程 来源:网络整理
导读:一、剖析MySQL查询 1、首先从慢查询开始,慢查询是开销最低,精度最高的测量查询时间的工具。 a、开始mysql的慢查询,修改my.conf [mysqld]#开启慢查询log_slow
一、剖析MySQL查询
1、首先从慢查询开始,慢查询是开销最低,精度最高的测量查询时间的工具。 a、开始mysql的慢查询,修改my.conf [mysqld] #开启慢查询 log_slow_queries = ON #指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log log-slow-queries = /usr/local/mysq/var/slowquery.log #记录超过的时间,默认为10s long_query_time = 1 #log下来没有使用索引的query,可以根据情况决定是否开启 log-queries-not-using-indexes #执行速度较慢的管理命令(比如OPTIMEZE TABLE)也会被记录 log-slow-admin-statements b、查看当前信息 c、写存储过程,生成一个500W记录的表 #生成随机字符串函数,在存储过程中调用 delimiter $$ create function rand_string(n int) returns varchar(255) begin declare chars_str varchar(100) default 'abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; declare return_str varchar(255) default ''; declare i int default 0; while i<n do set return_str = concat(return_str,substring(chars_str,floor(1+rand()*52),1)); set i = i + 1; end while; return return_str; end $$ delimiter ; #生成随机数字,在存储过程中调用 delimiter $$ create function rand_num() returns int(5) begin declare i int default 0; set i = floor(10+rand()*500); return i; end $$ delimiter ; #定义存储过程 delimiter $$ create procedure insert_emp(start int(10),max_num int(10)) begin declare i int default 0; set autocommit = 0; repeat set i = i+1; insert into emp values((start+i),rand_string(6),'SALESMAN',0001,2000,400,rand_num(),curdate()); until i = max_num end repeat; end $$ 查看本栏目更多精彩内容:http://www.bianceng.cn/database/MySQL/ (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |