MySQL数据库优化

数据库设计优化

  1. 适度违反三大范式
        遵循三大范式后续查询经常使用join,导致查询效率降低,结合业务需求适当做数据冗余。
  2. 适度建立索引
    建立索引规则:
        a.索引的字段必须是经常用来作为查询条件的字段,where
        b.如果是多个字段的情况,第一个字段要是经常作为查询条件的
        c.索引的字段必须有足够的区分度
  3. 对表进行水平划分
        每年产生100万条数据,按年或月对数据进行区分建表 user_2016,user_2017
  4. 对表进行垂直划分
        某张表中有很多字段,或某个字段很长,IO消耗大,根据业务需求适当划分为多个表
  5. 选择适当字段类型
  6. 宁可集中批量操作也不可频繁读写
  7. 选择合适的引擎
  8. 字段数据类型的选择,能使用数字型字段的尽量使用数字型
  9. 尽量避免大事物操作,索引优化

SQL语句优化

  1. 慢日志、explain
  2. 【避免全表扫描】,考虑在where和order by 子句中建立索引
  3. 尽量避免在where子句中使用null,会放弃索引,进行全表扫描
  4. 尽量避免在where子句中使用运算符(!=、<>)或函数(year())
  5. 避免使用or,会走全表扫描,union all
  6. 能使用between就不要使用in
  7. like尽量避免使用%%,不会走索引,D%会走索引
  8. 查询时尽量避免使用select *,仅列出需要查询的字段
  9. join的操作,小结果驱动大结果
  10. 分页查询时,基数比较大时,不要使用limit,尽量换成between
  11. 连接类型 效率从高到低,建议不小于range systme>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>all
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值