首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL索引创建

MySQL索引创建
EN

Stack Overflow用户
提问于 2011-08-23 12:06:29
回答 2查看 85关注 0票数 4

我有一个包含10列的表,并且我需要支持大多数列的组合范围过滤器。

让我们举个例子:

代码语言:javascript
复制
WHERE column_a >= a_min AND column_a <= a_max 
AND column_b >= b_min AND column_b <= b_max
...

但这还不是全部,我还需要支持按不同列对数据进行排序。

我的问题是,考虑到为了优化搜索而创建的可能的索引组合是巨大的,我有哪些可能的选择?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-23 12:16:50

分别为每一列创建索引。让mysql知道如何使用它们。

另外,顺便说一句,养成使用between运算符的习惯:

代码语言:javascript
复制
column_a between a_min AND a_max

而不是:

代码语言:javascript
复制
column_a >= a_min AND column_a <= a_max -- ugly and the semantic is not as obvious

它更容易阅读和输入,并做完全相同的事情。

票数 4
EN

Stack Overflow用户

发布于 2011-08-23 12:51:42

为查询中使用的所有列创建索引。

(column_a,column_n)

请参阅此处的多部分索引的范围访问方法:http://dev.mysql.com/doc/refman/5.0/en/range-optimization.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7156150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档