- 尽可能地使用最有效(最小)的类型。MySQL有很多节省磁盘空间和内存的专业化类型。
- 如果可能使表更小,使用较小的整数类型。例如,
MEDIUMINT
经常比INT
好一些。 - 如果可能,声明列为
NOT NULL
。它使任何事情更快而且你为每列节省一位。注意如果在你的应用程序中你确实需要NULL
,你应该毫无疑问使用它,只是避免缺省地在所有列上有它。 - 如果你没有任何变长列(
VARCHAR
、TEXT
或BLOB
列),使用固定尺寸的记录格式。这比较快但是不幸地可能会浪费一些空间。 - 每张表应该有尽可能短的主索引。这使一行的辨认容易而有效。
- 对每个表,你必须决定使用哪种存储/索引方法。
- 只创建你确实需要的索引。索引对检索有好处但是当你需要快速存储东西时就变得糟糕。如果你主要通过搜索列的组合来存取一个表,以它们做一个索引。第一个索引部分应该是最常用的列。如果你总是使用许多列,你应该首先以更多的副本使用列以获得更好的列索引压缩。
- 如果很可能一个索引在头几个字符上有唯一的前缀,仅仅索引该前缀比较好。MySQL支持在一个字符列的一部分上的索引。更短的索引更快,不仅因为他们占较少的磁盘空间而且因为他们将在索引缓存中给你更多的命中率并且因此有更少磁盘寻道。
- 在一些情形下,分割一个经常被扫描进2个表的表是有益的。特别是如果它是一个动态格式的表并且它可能使一个能用来扫描后找出相关行的较小静态格式的表。
mysql性能优化
最新推荐文章于 2024-09-14 15:21:37 发布