Mysql索引创建

时间:2016-03-01 16:09:34

标签: mysql database-indexes

我是runnung Mysql 5.5.47-0 + deb7u1-log(Debian)。在数据库中有两个表,结构完全相同,数据大致相同(不要问我为什么,它的故事很长......而且我知道它们很浪费),每个都有大约80M的记录。

table1/table2(review_id int(11), adj_id int(11), occurrences int(11))
             Primary(review_id, adj_id)


adj_id has about 14000 unique values.
review_id has about 1.8M unique values. 
Both adj_id and review_id have KEY indexes to speed up search.

现在:首先完全创建Table1(在review_id,adj_id上使用单独的索引),然后更新/插入值。 表2是在没有任何索引的情况下创建的(知道主要组合是唯一的)和建立在顶部的索引。

事实证明,这些指数出乎意料地有所不同。特别是adj_id基数38951 vs. 24 !!!!:

表:Keyname Type独特的压缩克隆卡。 coll.NULL

表1:ind_adj BTREE否否adj_id 38951 A否(预建)

表2:援助BTREE否否adj_id 24否(后添加)

adj_id有大约14000个唯一值,因此这里的值似乎不是该列的DISTINCT COUNT值的估计值。

通过adj_id搜索到table2似乎慢了约50%。

我对此非常好奇。有什么解释吗?

由于

迈克尔

0 个答案:

没有答案