Mic*_*ass 6 mysql schema index index-tuning mysql-5.7
我们使用的是Mysql 5.7
我们在大约 5 亿行的表中的 varchar(255) 列上有一个索引。
select distinct varchar_column from table产生 7 个结果,最大长度为 21。
一位 DBA 顾问建议我们将 varchar 列的长度降低到 21。在测试中降低 varchar 列的大小会缩小索引大小,相当于简单地对表进行碎片整理而不更改架构(例如alter table)。
当我们将长度减少到 17 时,我们看到了稍微好一些的结果。
除了索引大小之外,我们还缺少什么优势吗?
使用列时会出现一些 CPU 扰动,VARCHAR因为必须进行长度计算。无论VARCHAR(21)或 ,这都是正确的VARCHAR(255)。如果您寻求更快的速度,则必须将 更改VARCHAR(21)为CHAR(21)。
这将使行长度和索引更大,但您会看到更好的结果。大小与速度的权衡是非常值得的。
我之前讨论过这个
May 10, 2011; 在固定大小字段上使用 CHAR 与 VARCHAR 对性能有何影响?Mar 25, 2011:MySQL VARCHAR 大小的性能影响对于使用 MySQL 5.x 的用户,您应该使用以下命令确定正确的大小和类型
select distinct varchar_column from table PROCEDURE ANALYSE();
Run Code Online (Sandbox Code Playgroud)
请参阅有关 PROCEDURE ANALYSE() 的 MySQL 5.7 文档。(在 8.0 中已弃用)。
| 归档时间: |
|
| 查看次数: |
1575 次 |
| 最近记录: |