作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Rails 中创建一个 MySQL 表,它有大约 170 个 bool 字段,每个字段都需要可搜索并因此建立索引,但是当我创建索引时,我收到错误消息:
To many keys specified; max 64 keys allowed
这个限制是硬编码的还是有一个配置开关我可以翻转哪个可以绕过它?
或者我需要重构表格吗?对我来说最明显的方法是将多个表连接在一起并运行一个查询,例如
Table.find.all(:conditions => "join1.fieldx = true and join2.fieldy = true")
这种策略是否存在任何性能问题或其他问题?
最佳答案
显然目前唯一的方法是增加源代码中MAX_KEY
的值并重新编译MySQL。 ( Source )
Or do I need to refactor the table?
可能是的。除了键多的问题,索引 bool 列也不是特别有利。 B 树索引对于高基数数据(即具有许多可能值的列,其中列中的数据是唯一的或几乎唯一的)最有效。
如果您必须坚持这种设计,我想您可能需要考虑让 bool 列不被索引并且没有任何外键约束。
关于MySQL 'Too many keys' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1979737/
我是一名优秀的程序员,十分优秀!