【发布时间】:2013-02-04 17:10:58
【问题描述】:
我做了一个测试,看看划分索引大表是否会提高性能。
原始表:20000 行。 子表:4x5000 行。
主表分为4张表,所有表都有索引,在测试中每个sql查询循环执行10000次,以测量更准确的查询次数。
当我在表中搜索索引列时,我发现性能没有差异,并且原始(20000 行)表和新(5000 行)表的查询时间相同。
我通过删除所有表的索引尝试了相同的测试,没有索引,性能差异很明显,在子表中搜索比在大表中搜索快 6 倍。但是索引性能是一样的。
那么你认为把我的桌子分成更小的桌子是浪费时间吗?
注意:20000大小只是为了测试,我的真实数据会在100M以上。
【问题讨论】:
-
表结构应该由应用程序的需要和合乎逻辑的东西决定。尤其是在已经很小的 20,000 条记录的表上。 (行大小限制为 65,535 字节,因此即使您将其最大化,数据大小也不会那么多)
-
这是在浪费时间!
-
样本表是用来测试的,实际数据会比这个大很多。
标签: mysql sql performance indexing