1.优化表大小
表列:用小int代替int,节省四分之一空间;索引行采用not null,避免存储引擎判断是否Null,可以设置一个默认值。如果必须采用Null值可以使用。
表索引:主键索引越短越好,主键索引存在于每一个二级索引中,如果主键索引较短,则节省可观的空间。
创建需要提升性能的索引,如果读取表总是通过若干列,那么最好创建一个联合索引而不是每个列都创建索引,联合索引的第一个列应该是频繁使用的列以提升索引使用率。
如果有一个长string列有唯一的前缀,那么创建索引时应该索引这些前缀而不是全列索引,越短的索引越快,不仅是因为这些索引需要越少的磁盘空间,而且缓存空间命中率高,从而减少磁盘查找。
表设计:尽量保持表列不重复,如果读取速度优于磁盘空间,可以冗余一部分信息避免join表
2.优化表数据类型
对于唯一ID或者其他列可以用数字或者字符串表达的,优先选择数字,由于相较于字符串较大的数字在磁盘存储只需要几个字节,因此传输和比较更快,占用的内存更少。
在数据库中,数字数据比字符串存储格式更紧凑,需要更少的磁盘访问,读取数字数据比字符串速度更快。