1、慢日志记录
slow_query_log = OFF #是否开启慢日志记录 long_query_time = 2 #时间限制,超过此时间,则记录 slow_query_log_file = C:Softwaremysql56dataMarkben-slow.log #日志文件 log_queries_not_using_indexes = OFF #为使用索引的搜索是否记录
配置:
1 基于文件
#查看当前配置信息 show variables like '%query%'; #修改当前配置信息 set global 变量名 = 值
2 配置文件
新建一个配置文件比如my.conf,把配置信息写在配置文件中:
配置文件路径为: C:Softwaremysql56dataMarkben-slow.log
当mysqld在首次启动的时候,就会开启慢日志查询:
mysqld --defaults-file='C:Softwaremysql56my-default.ini;
注意:修改配置文件之后,需要重启服务(修改配置文件之前需要备份)
3、分页(*****)
select * from userinfo3 limit 20,10;
问题:翻的页数也大运行越慢,比如写成limit 200000,10 会先把扫前200000条数据,然后再往后查10条数据,这会浪费时间
解决方案:
1 当页数达到一定程度时,禁止查看
2 去索引表中扫:(不推荐)
select * from userinfo3 where id in(select id from userinfo3 limit 200000,10); #这种方法时间也快不了多少
3 推荐方案
记录当前页的最大ID or 最小ID,最大ID用于往下翻页,最小ID用于往上翻页
3.1 页面只有上一页下一页
# max_id # min_id #下一页: select * from userinfo3 where id > max_id limit 10; #上一页: select * from userinfo3 where id < min_id order by id desc limit 10;
3.2 上一页和下一页之间还有页码(192 193 [196] 197 198 199)
select * from userinfo3 where id in ( select id from (select id from userinfo3 where id > max_id limit 30) as N order by N.id desc limit 10)