在内存中配置(直接在CMD窗口执行) show variables like '%query%' 然后通过显示出来的列表修改想要的变量 set global 变量名 = 值 ,如以下几种:
set global slow_query_log=ON/OFF # 是否开启慢日志
set global long_query_time=2 # 超过此时间,则记录
slow_query_log_file =D:XXXX # 日志文件路径
log_queries_not_using_indexes = OFF # 如果开启,就判断SQL语句是否命中索引(这个要用show variables like '%queries%'来查看 )
使用配置文件配置(存放在硬盘中)
创建一个配置文件,如my.ini在里面写入 set global 变量名 = 值 ......
使用配置文件:mysqld --defaults-file = 'D:\XXX.my.ini'
修改配置文件时,记得备份然后重新启动服务
分页:
select * from t1 limit 20,10; # 翻的页数越多,速度越慢,因为他会扫描之前所有的方式
解决方法:
不让看~~~ (最多让你看XX页)
去索引表查找 select * from t1 where id in (select id from t1 limit 9999,9) 用覆盖索引去索引表找,但速度也快不了多少
方案:
记录当前页最大或最小ID,比如select * from t1 where id >999 limit 9; 通过Python调整数据 # ID是不连续的,所以无法直接使用ID范围进行查找
页面只有上一页,下一页(假设每页有10个数据) max_id(数据的ID不是页面的ID) min_id 下一页 select * from t1 where id > max_id limit 10; 上一页 select * from t1 where id < min_id order by id desc limit 10;
上一页 97 98 99 [100] 101 102 [103] 下一页 (每页10个数据,从100页跳刀103页) select * from where id in (select id from (select id from t1 where id > max_id limit 30) as N order by N.id desc limit)