当前位置 博文首页 > 里奥ii的博客:20个MySQL高性能架构设计原则(收藏版)

    里奥ii的博客:20个MySQL高性能架构设计原则(收藏版)

    作者:[db:作者] 时间:2021-08-28 10:08

    墨墨导读:MySQL如何实现高性能?以下内容是结合其他技术同仁的总结和自我实践整理的20个开源数据库设计原则,分享至此,希望对大家有帮助。


    开源数据库架构设计原则

    01 技术选型


    选择成熟的平台和技术,同时是最熟悉的,能做到极致的,用好不用坏,用熟不用生。目前业界的MySQL主流分支版本有Oracle官方版本的MySQL、Percona Server、MariaDB。

    02 高可用选择


    高可用解决方案探讨的本质上是低宕机时间解决方案,可以理解成高可用的反面是不可用,绝大部分情况下数据库宕机才会导致数据库不可用。随着技术发展,开源数据库方面很多高可用组件(主从复制、半同步、MGR、MHA、Galera Cluster),对应场景,只有适合的,没有万能的,需要理解每个高可用优缺点。


    03 表设计

    表设计方面目前一致坚持和提倡的原则:

    • 单表数据量
      所有表都需要添加注释,单表数据量建议控制在 3000 万以内
    • 不保存大字段数据
      不在数据库中存储图片、文件等大数据
    • 表使用规范
      拆分大字段和访问频率低的字段,分离冷热数据
      单表字段数控制在 20 个以内
    • 索引规范
      1.单张表中索引数量不超过 5 个
      2.单个索引中的字段数不超过 5 个
      3.INNODB 主键推荐使用自增列,主键不应该被修改,字符串不应该做主键,
      如果不指定主键,INNODB 会使用唯一且非空值索引代替
      4.如果是复合索引,区分最大的字段放在索引前面
      5. 避免冗余或重复索引:合理创建联合索引(避免冗余)
      6. 不在低基数列上建立索引,例如‘性别’
      7. 不在索引列进行数学运算和函数运算
    • 字符集utf8mb4(偏生字,表情符)

    04 优化原则

    v2-98d82e5e63f11097aa10f26efd2aa2fe_b.jpgcs