MySQL 8.0发行说明
MySQL 8.0源代码文档10bet官方网站
一旦您的数据达到稳定尺寸,或者越来越多的表格增加了数百或数百兆字节,请考虑使用
优化表
语句重新组织表并压缩任何浪费的空间。重组后的表需要更少的磁盘I/O来执行全表扫描。这是一种简单的技术,可以在其他技术(如改进索引使用或调优应用程序代码)不实用时提高性能。优化表
复制表的数据部分并重新构建索引。其好处在于改进了索引内的数据打包,减少了表空间和磁盘上的碎片。好处因每个表中的数据而异。您可能会发现一些人获得了显著的收益,而另一些人却没有,或者收益会随着时间的推移而减少,直到下一次优化表为止。如果表很大,或者正在重建的索引不适合缓冲池,则此操作可能会很慢。向表添加大量数据后的第一次运行通常比以后的运行要慢得多。在
Innodb.
,有一个长主键
(一个列有一个很长的值,或者几个列组成一个很长的复合值)浪费了大量磁盘空间。一行的主键值在指向同一行的所有辅助索引记录中重复。(见第15.6.2.1节,“聚类和二级索引”)。创建一个AUTO_INCREMENT
如果你的主键是长,列作为主键,或索引一个长前缀varchar.
列,而不是整个列。使用
varchar.
数据类型而不是字符
用于存储长度可变的字符串或多个列零
价值观。一种char(
列始终需要N
)N
存储数据的字符,即使字符串较短或其值是零
。较小的表格在缓冲池中更好地适合,并减少磁盘I / O.使用时
袖珍的
行格式(默认值Innodb.
格式)和变长字符集,例如use utf8
或sjis
那char(
列占用了可变空间,但仍然至少是N
)N
字节。对于大的表,或包含大量重复文本或数字数据,请考虑使用
压缩
行格式。将数据带入缓冲池或执行全表扫描所需的磁盘I/O更少。在做出永久的决定之前,测量您可以通过使用实现的压缩量压缩
相对袖珍的
行格式。