MySQL索引创建

MySQL索引创建,mysql,database-indexes,Mysql,Database Indexes,我正在运行MySQL 5.5.47-0+deb7u1日志(Debian)。在一个数据库中,有两个表,完全相同的结构,大致相同的数据(别问我为什么,说来话长,我知道它们是浪费),每个表大约有8000万条记录 table1/table2(review_id int(11), adj_id int(11), occurrences int(11)) Primary(review_id, adj_id) adj_id has about 14000 unique value

我正在运行MySQL 5.5.47-0+deb7u1日志(Debian)。在一个数据库中,有两个表,完全相同的结构,大致相同的数据(别问我为什么,说来话长,我知道它们是浪费),每个表大约有8000万条记录

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.
现在:首先完全创建了表1(在review_id、adj_id上有单独的索引),然后更新/插入值。 表2是在没有任何索引的情况下创建的(知道主组合是唯一的),索引是在上面构建的

结果表明,这些指数有着惊人的不同。特别是调整id基数38951对24!!!!: 表:Keyname类型唯一打包的clmn卡。coll.NULL

表1:ind_adj BTREE No adj_id 38951 A No(预制)

表2:aid BTREE No No adj_id 24 A No(后加)

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

通过adj_id搜索表2的速度似乎慢了50%

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

这更适合可能的副本这更适合可能的副本