MySQL优化

作者: b1055bae4a4d | 来源:发表于2016-01-13 18:59 被阅读0次

    MySQL优化这个话题比较“沉重”......
    大概可以从以下几个大的方向进行

    1:物理机器、MySQL的配置优化(不太了解)

    2:逻辑设计
    也就是怎么设计表
    范式与反范式,有时候为了查询方便可以适当的冗余字段
    比如在”标签与帖子关联”表中,冗余一个帖子发布时间和帖子状态字段
    方便实现”查询具有某些标签的正常帖子,按照时间倒叙排序”。当然这基于这些字段很少很少更新
    单独一个表
    比如帖子的相关计数数据:查看量、评论量、点赞量等,这时候可以单独一个表,而非放到帖子表中
    这样可以减少对帖子表的影响,也方便计数的业务独立出来

    3:选择合适存储引擎和字段类型
    要了解常见的存储引擎以及特性,然后根据表的实际应用场景选择。后面单独做个总结吧
    要了解MySQL几种数据类型和数据类型占用的字节数
    选择原则是:
    越小越好,比如,能用tinyint的绝对不用int
    越简单越好,比如, 整形比字符串操作代价更小、用内置的时间和日期类型表示日期,而非字符串、IP用整形而非字符串

    4:索引优化
    索引原理、MySQL索引实现
    索引的建立要依据查询的SQL
    索引不能太多,尽量建立联合索引,区分度很低的字段不要建立单独的索引
    联合索引:最左匹配
    全值匹配、匹配最左前缀、匹配列前缀(比如like 'key%’)、匹配范围值(between > <)、只访问索引的查询

     order by什么情况下会使用索引
     in(1,2,3,4)这种查询如何使用索引
    

    5:查询优化
    1:多个简单的单表+索引查询
    2:尽量不用join
    3:尽量不用子查询,可以用join查询代替(当然最好别用join)

    相关文章

      网友评论

        本文标题:MySQL优化

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