1. 维护数据字典
  2. 维护索引
  3. 维护表结构
  4. 在适当的时候对表进行水平拆分或垂直拆分

维护数据字典

  1. 使用第三方工具维护数据字典
  1. 利用数据库本身字段和表的备注,导出字典(首先确保已经添加了备注)
    1. mysql> SELECT a.TABLE_NAME,b.TABLE_COMMENT, a.COLUMN_NAME, a.COLUMN_TYPE, a.COLUMN_COMMENT
    2. -> FROM information_schema.COLUMNS a JOIN information_schema.TABLES b
    3. -> ON a.TABLE_SCHEMA = b.TABLE_SCHEMA AND a.TABLE_NAME = b.TABLE_NAME
    4. -> WHERE a.TABLE_NAME = 'tbdevice';
    image.png

维护索引

如何选择合适的列建立索引?

  1. 出现在WHERE从句,GROUP BY从句,ORDER BY 从句中的列
  2. 可选择性高的列要放到索引的前面
  3. 索引中不要包括太长的数据类型

注意事项

  1. 索引并不是越多越好,过多的索引不但会降低写效率而且会降低读的效率

    索引过多,SQL优化器就会进行判断选择索引,从而降低效率

  2. 定期维护索引碎片

  3. 在SQL语句中不要使用强制索引关键字

    由于数据量的变化,索引会不适用;索引删除后,SQL语句会出错

维护表结构

变更表结构

  • mysql5.6之前,会全局锁可以使用pt-online-schema-change,原理是建立一个临时表,并建立触发器,所以注意原触发器会冲突。
  • 同时对数据字典进行维护
  • 注意表的宽度和大小,是否拆分。

数据适合的操作

  1. 批量操作优先于逐条操作
  2. 禁止使用Select * 查询
  3. 控制使用用户自定义函数
  4. 不要使用数据库中的全文索引——另外建立索引文件,对中文支持相对较差;使用搜索引擎代替全文索引