MySQL 优化数据库对象

时间:2021-07-09 16:08:38

一、考虑是用 procedure analyse() 函数对当前应用的表进行分析。字段类型是否可优化。

二、通过拆分提高表的访问效率。

  (A) 针对MyISAM表,有两种拆分方法:

    垂直拆分:主码和某些列在一个表,主码和另一些列在另一个表。这在一个表中某些列常用,而某些列不常用的时候采用。此种方法:数据页变小,减少I/O次数,缺点是:需管理冗余,查询需要联合操作。

    水平拆分:根据一列或多列的数据的值把数据行放到两个独立的表中。使用场景:

      表很大,分割后降低数据量和索引的页数,降低索引的层数,提高查询速度。

      表中数据本来就有独立性,

      数据需要存放到多个介质上。

三、逆规范化

  常见的有:增加冗余列、增加派生列、重新组表和分割表。

  逆规范化需要维护数据的完整性,常用方法:批处理维护、应用逻辑和触发器。

四、使用中间表提高统计查询速度

  中间表在统计查询中经常会用到,其优点是:

    中间表复制源表部分数据,切与源表相隔离,在中间表上做统计查询不会对在线应用产生负面影响。

    中间表可以灵活地添加索引和增加新字段,方便实现功能。