首页 > > > 性能优化【2】| 数据库该如何设计性能才最优?
点击上方SQL学习之路,关注后获取SQL视频教程
好的数据库设计可以提高数据库的性能.在设计数据库时考虑以下原则可以提高性能.
规范化的数据库可防止数据存在功能相关性,以便轻松、高效地更新数据库。但是,查询数据库时可能需要联接许多表来组合信息。随着联接表数目的增多,查询运行时间会大大增加。因此,规范化的数据库并不一定是最佳的选择。通常,如果有相当多的查询需要联接五个或六个以上的表,则应考虑使用非规范化数据库。
此外对一些使用统计函数计算后的值,计算后存储起来,可以节省大量查询时间,但是使用此方法时需要在表中多维护一列。
与固定长度列相比,可变长度列的缺点是一些操作的效率不高。例如,如果可变长度列开始时很小,而某 UPDATE 子句使其显著增大,则可能就要重新定位记录。此外,频繁的更新会导致数据页随着时间推移变得比较零碎。因此,在数据长度变化不大并且需要频繁进行更新时,建议使用固定长度列。
页中可容纳的行数取决于各行的紧凑程度。如果行较小,则页中可以容纳更多的行。因此,对行较为紧凑的表执行的单磁盘操作可以检索更多的行,从而使操作更为有效。此外,存储引擎缓存中也可以包含更多的行,而这可能会提高命中率。使用紧凑的行还可以防止浪费数据页上的空间。使用较大的行时,通常就会有这种浪费情况。
使操作更为有效
提高命中率
假设您有一个表,其中某些列具有非常稳定的值,而其他列的值更改非常频繁。那么,将这个表拆分为两个表(一个表包含频繁引用的列,另一个表包含稳定的列)是很有意义的。通过创建两个表,即可拥有长度较小的行的所有优点。但缺点是需要使用联接来组合信息。
具有一个或少数几个键列的索引称为窄索引。具有许多键列的索引称为宽索引。宽索引的键长度通常较大。一个极端的索引示例是包括表中的所有列。通过创建这样的索引,可以有效地制作原始表的副本。不过,在数据库大小和查询性能方面,这种做法的效率都十分低下。
较小的索引键占用的空间更小,并且更为有效。
使用长度变化不大,紧凑的主键十分有用.
扩展阅读
公众号内回复‘M’获取文章目录,搜索QQ群“SQL学习之路”加群讨论

长按识别二维码,
更多精彩早知道!
原文作者:;如有侵权,请联系管理员删除。