美文网首页
MySQL优化总结

MySQL优化总结

作者: yuanzicheng | 来源:发表于2017-05-21 13:41 被阅读17次
建表原则
  • 定长字段与变长字段分离,使存储空间整齐,加速查询;
  • 常用字段与不常用字段分离
  • 适当增加冗余字段,如一对多查询需要关联统计
列类型选择
  • 字段类型选择优先级:int,bigint > date,time > enum,char > varchar > blob, text;
  • 字段长度够用就行,不要过大
  • 尽量不要使用NULL,不利于索引
索引(btree、hash)
  • 常用多列(联合)索引,索引命中顺序从左向右;
  • 聚簇索引(InnoDB)会发生索引覆盖,非聚簇索引(MyISAM)无影响;
  • 理想索引:查询频繁、区分度高、长度小、索引列尽量覆盖常用查询字段;
  • 索引列不能使用表达式或函数
  1. 对一列的前n个字符使用前缀索引:create index 索引名 on table(列名(n))
  2. 区分度低的列尽量不要建立索引
  3. 使用联合索引时经常出现在where语句中的列放在的前面
  4. 使用索引优化排序的3个条件:
    索引列顺序与order by子句顺序一致;
    索引列的方向(asc、desc)与order by子句一致;
    多表关联时,order by中的字段需要在关联表中的第一个表。
  5. InnoDB存储引擎的表,数据的逻辑顺序与主键顺序一致,可以使用主键排序
  6. 索引可以在存储引擎过滤不必要的锁,减少锁定的行数,进而提升并发性
查询优化
  • limit分页查询随着select ...limit x,y;中的x增大而降低效率,可使用
    select ... from 表 join (select id from 表 limit x,y) as a on 表.id = a.id;进行优化,先从索引查找缩小范围
其它
  • 长时间数据变化后,索引文件和数据文件都将产生空洞,形成碎片,可以使用optimize table 表名;来优化;

相关文章

  • 17.MySQL优化

    《高性能MySQL》——这本书都有的 “字段”优化总结 “索引”优化总结 索引的优化 “查询SQL”优化总结 “引...

  • mysql程序

    MySQL性能优化方案总结

  • 项目中常用的19条MySQL优化

    本文总结了19条关于Mysql的优化方案,本文的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的。希...

  • 深入学习MySQL优化

    MySQL高性能优化实战总结 MySQL 的查询过程如下图,很多的查询优化工作实际上就是遵循一些原则。 优化的哲学...

  • 转载:史上更全的 MySQL 高性能优化实战总结!

    转载:史上更全的 MySQL 高性能优化实战总结! 1 前言 2 优化的哲学 3 优化思路 3.1 优化什么 3....

  • MySQL 索引及查询优化总结-2018-03-20

    MySQL 索引及查询优化总结 文章《MySQL查询分析》讲述了使用MySQL慢查询和explain命令来定位my...

  • MySQL索引知多少

    mysql索引 总结关于mysql的索引,查询优化,SQL技巧等 1 索引类型 B-Tree索引 Hash索引 ...

  • 「mysql优化专题」本专题总结终章(13)

    一个月过去了,【mysql优化专题】围绕着mysql优化进行了十三篇的优化文章,下面进行一次完整的总结!我尝试用最...

  • MySQL 优化总结

    在CSDN上看到一篇关于MySQL优化基础的总结,但可以说是总结的很好。 1.对查询进行优化,要尽量避免全表扫描,...

  • MySQL优化总结

    1.SQL关键字的执行的顺序 from======》where======》group by======》havi...

网友评论

      本文标题:MySQL优化总结

      本文链接:https://www.haomeiwen.com/subject/fufmxxtx.html