【发布时间】:2020-10-17 12:59:51
【问题描述】:
我在 MySQL 中有一个包含 50k 行的表,最近添加了一个新索引。当我运行时(显示表中每个索引的大小):
SELECT database_name, table_name, index_name,
ROUND(stat_value * @@innodb_page_size / 1024 / 1024, 2) size_in_mb
FROM mysql.innodb_index_stats
WHERE table_name = 'table_name' and stat_name = 'size'
ORDER BY size_in_mb DESC;
它显示我新创建的索引为 1.5 mb。这是否意味着当我创建新索引时 MySQL 会自动索引现有表,或者我必须使用 OPTIMIZE TABLE 或类似命令手动重新索引它?我正在使用 InnoDB(版本 5.7.26)。
在速度方面,它似乎根本没有提高我的查询性能,这就是为什么我认为重新索引是必要的。
【问题讨论】:
标签: mysql indexing innodb reindex