美文网首页程序员
MySQL数据库优化总结

MySQL数据库优化总结

作者: 林万程 | 来源:发表于2017-12-23 22:06 被阅读190次

    《高性能MySQL》指导

    性能优化
    1.表优化
    2.索引优化
    3.查询优化
    4.服务器优化
    5.系统与硬件优化

    稳定优化
    1.复制
    2.可拓展
    3.高可用,避免单点失效等
    4.云
    5.备份恢复

    1.表优化
    选择合适的数据类型
    减少列和关联
    反范式冗余
    缓存表、计数器表

    2.索引优化
    索引独立放在符号的一侧
    前缀/翻转后缀索引
    合适的多列索引顺序
    聚簇索引(索引组织表)
    覆盖需要返回字段索引
    索引排序
    压缩
    移除冗余和重复索引
    (唯一和主键都是索引)
    索引减少锁定

    3.查询优化
    减少访问和返回
    多个简单查询以便缓存和短锁
    切分减少锁持续
    最值加 LIMIT 1
    没有 WHERE 的 COUNT() 是直接获得
    用 COUNT(
    ) - 少数行查询
    使用 EXPLAIN 估算
    去除 DISTINCT 以避免排序
    确保 ON 或 USING 子句上有索引
    确保汇总排序只涉及一个表才有可能用索引
    MySQL5.5 使用关联查询代替子查询
    先LIMIT再关联
    返回多一条数据如果没有就不下一页
    UNION ALL 以避免自动 DISTINCT

    其他指导

    or 用 in 代替,或者 UNION ALL 代替后在应用层处理重复数据
    GROUP BY确认不需要排序时用ORDER BY NULL 避免多余排序
    导入数据前set unique_checks=0导好设1
    insert delayed异步合并写入,但宕机丢数据

    高速查询
    userServerPrepStmts=true
    cachePrepStmts=true

    高速插入(同时用手动提交事务)
    useServerPrepStmts=false
    rewriteBatchedStatements=true
    useCompression=true

    join 空分开

    select * from a
    join b
      on a.k is not null
      and a.k = b.k
    union all
    select * from a
      where a.k is null
    

    相关文章

      网友评论

        本文标题:MySQL数据库优化总结

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