mysql数据库优化的方案

26 阅读2分钟

目的

现有系统经过几年的建设,已经有大约200多张表的数据,需要进行检查优化工作

问题统计如下

  1. 虽然代码使用了微服务,但是数据库没有进行分库
  2. 项目发展过来经历过几次人员变动,部分功能做了一半就没有人管了,导致预计10%-20%的无用库表
  3. 由于历史原因,建表中的排序规则、字符集都不统一
  4. 数据库字段问题,如同名的列名使用了不一样的数据格式,如部分表没有主键等
  5. 线下业务数据跟线上数据不匹配
  6. 索引检索并修正,现在有的表的索引已经高达7-10个
  7. 数据库的变更没有相关记录
  8. 数据库无实时备份
  9. 数据库单一,只有mysql

改造分类

类型改造方式难度预计时间(含测试)
分库将现有库表分离3人月
去除无用库表将无用库表和代码从系统拆离5人天
统一字段格式统一排序、数据格式长度3人天
索引排查清理规范索引使用,去除无效索引5人天
线下数据跟线上同步将各个表的数据线下线上排查比对需要线下业务支持
数据库实时备份使用bin_log完成数据准实时同步需要停机操作,1人天
数据库进行版本管理引入版本管理工具3人天
慢sql检索优化引入第三方工具进行准实时检查,并进行优化10人天
引入其他数据库分析库表少并且业务关联少的数据采用redis存储,大量的单一表数据考虑是用mongodb存储10人天