在某个网站上,忽然看到了个简短的问答“在MySQL数据库单个普通表上,最多可以创建多少个索引?”
老实说,看到这个问题的瞬间我是有点懵的状态,我原本只只知道Innodb引擎的表,最多只有1017列(至于为什么不是1024,可以百度一下),
下意识地就觉得索引最多可以创建1017个,但是仔细一想,不对啊, 索引可以是复合索引啊,那绝对不止1017,难道索引的数量会是1个很大的数据吗?
再仔细想想,以Innodb的抠门个性,不可能会是1个大的数值,然后去翻了下官方文档,看到如下内容。
15.22 InnoDB Limits
This section describes limits for InnoDB tables, indexes, tablespaces, and other aspects of the InnoDB storage engine.
A table can contain a maximum of 1017 columns. Virtual generated columns are included in this limit.
A table can contain a maximum of 64 secondary indexes
上面就清楚地写着, 1个表最大只能创建64个2级索引。 加上主键,那么上面的问题就有了答案,65个。
我试着填了65 的答案上去之后,点击提交,网站给我的回复是错误,我花了1个积分查看了正确答案【我回答是为了赚积分,没想到还赔了1个积分!!】
网站给的答案是:16.
纳尼