mysql limti_mysql优化

1)开启mysql慢查询日志

使用 show variables like "%slow%"; 命令来查看mysql慢查询配置信息

(其中)log_slow_queries : 慢查询日志开关

(其中)slow_launch_time:慢查询时间设置(以秒为单位),超过这个时间的查询语句为慢查询语句,会自动记录到慢查询日志里

修改配置方法一(临时,重启mysqld后自动恢复):

set global log_slow_queries=ON;

set global slow_launch_time=10;

修改配置方法二(永久):

修改 /etc/my.cnf 配置文件,加入下面两句配置参数

log-slow-queries = /tmp/mysql-slow.log

long_query_time = 2

2)索引优化建议

使用 "desc sql语句" 命令来分析出当前的sql语句的性能

type:查询的类型

possoble_keys:可能使用的索引

key:使用的索引

ref:建议

3)使用索引

1、给条件字段(where、order by、group having等)加索引;

2、如果字段类型为varchar类型,必须使用单引号或双引号包裹(错误:where user_name=123,正确:where user_name ="123"),否则索引无效;

3、如果where使用like模糊查询,前面不能放%(错误:where user_name like "%三%",正确:where title like "张%"),否则索引无效;

4、条件使用and或or时,这两个(或多个)条件字段都必须有索引(例如:select * from users where user_name="张三" and user_sex=1),否则整条查询语句索引无效。

5、尽量不要使用子查询,嵌套了子查询的sql语句,只有子查询能用到索引,效率较低!!可以使用复合查询或连接查询替代

4)查看数据表是否有错误

check table tbl_name;

5)数据表优化(碎片整理)

optimize table tbl_name;

6)优化查询语句

1、insert .... values ....(...),(...),(...)  一次性插入多个数据可以减少mysql的连接和关闭的资源损耗;

2、group by 默认是升序排序的,加上order by null可以禁止排序,在对大量数据进行分组聚合时,可以提高一定的效率

7)分区、分表、使用视图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值