mysql简单优化工作总结

1 建表
(1)表的大小,字段类型与长度考虑
(2)字段not Null设置
(3)字段取值范围,枚举值等设置
2 事物、索引、外键、缩表等考虑
3 sql语句优化
(0)不用模糊查询…"%xx%".,第一个百分号破坏索引,可以按实际场景去优化前后端,"%…"不破坏索引。
(1)能用between就不要用in、not in;
(2)给默认值,不要有空列作为查询条件) 这些都会导致全表查询;
(3 )尽量少嵌套查询
(4)union all 减少数据库连接
(5)where 条件尽量避免索引计算
(6)no exist、exist代替not in、in
(7)不要select *,应该select 字段
(8)慎重使用临时表、可以提高性能
(9)尽量用数字字段关联表

4 索引
4.1破坏索引的sql(不全):
(1)模糊查询:"%xx%",全模糊查新,全表扫描,第一个百分号破坏索引,可以按实际场景去优化前后端,"%…"不破坏索引。
(2)is not null破坏索引,索引列最好都为非Null。
(3)!= 限制索引,全表扫描,用or代替。
(4)or连接符,其中一个条件字段非索引,会全表扫描。
(5)count(*)全表扫描
(6) int 自动转 varchar(强制转换等);
(7)不是前缀索引(符合索引);
(8)is Null 判断也会丢失索引;
……
4.3 正确使用索引:
(1)不使用is Null
(2)不使用<>、!=,使用<,<=,=,>=,>
(3)不使用or 用union all
(4)谨慎使用not in、in,用between and代替
(5)不用%…% 模糊查新,用…%
(6)where条件不做计算,否则失去索引全表扫描
(7)where 不使用函数,否则失去索引全表扫描
(8)避免索引列出现数据类型转换
(9)索引影响insert和update,一般不超过6个。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值