是否可以在索引上创建索引?

时间:2010-04-23 19:51:22

标签: mysql database oracle indexing

这是一个多部分索引问题:

  1. 有没有办法可以创建索引 在索引?
  2. 为什么会这样呢?
  3. 如果有,有什么例子吗?

3 个答案:

答案 0 :(得分:10)

,索引适用于表格中的列

How MySQL Uses Indexes

  

索引用于查找行   特定的列值很快。   没有索引,MySQL必须开始   用第一行然后读   通过整个表找到   相关行。桌子越大,   这个成本越多。如果表有   相关列的索引,   MySQL可以快速确定   寻求中间的位置   数据文件无需查看   在所有的数据。如果一张桌子有1000   行,这至少是100次   比顺序阅读更快。

答案 1 :(得分:3)

您可以从oracle文档中的create index语法图中看到它不适用于索引 我也不能想到你想要的理由。

答案 2 :(得分:0)

索引已经排序,所以你可能根本不想为它创建一个索引。但是,如果进行低级编程,您可能希望在内存或较小的磁盘区域中存储索引的子集(比如每1024个或每2048个记录),因此您可以先查看并在较大的位置搜索索引记录谎言。

“平方根”规则适用于此。因此,如果该表有400万个条目,那就是2048 * 2048(大约)。您“加载”2048条记录,然后找到您需要加载的主索引的2048条记录部分以便查找记录,因此您只需加载2个块而不必通过2048块进行二进制搜索。

这可能是一个巨大的优化,但它适用于低级程序员,即数据库工具的开发人员,而不是他们的用户。