Mysql 可以在索引上创建索引吗?
这是一个多部分索引问题:Mysql 可以在索引上创建索引吗?,mysql,database,oracle,indexing,Mysql,Database,Oracle,Indexing,这是一个多部分索引问题: 有没有办法创建索引 在索引上 为何要这样做呢 如果有的话,有什么例子吗 否,索引用于表中的列 索引用于查找具有 快速指定特定的列值。 如果没有索引,MySQL必须开始 用第一行,然后读 通过整个表格找到 相关行。桌子越大, 成本越高。如果桌子上有 有关列的索引, MySQL可以快速确定 在中间寻求位置 无需查看数据文件 在所有的数据中。如果一张桌子有1000个 行,这至少是100次 比按顺序阅读快 从oracle文档中的语法图可以看出,它不适用于索引。 我也想不出你想
否,索引用于表中的列 索引用于查找具有 快速指定特定的列值。 如果没有索引,MySQL必须开始 用第一行,然后读 通过整个表格找到 相关行。桌子越大, 成本越高。如果桌子上有 有关列的索引, MySQL可以快速确定 在中间寻求位置 无需查看数据文件 在所有的数据中。如果一张桌子有1000个 行,这至少是100次 比按顺序阅读快
从oracle文档中的语法图可以看出,它不适用于索引。
我也想不出你想这样做的原因。一个索引已经被排序,所以你可能真的不想创建一个这样的索引。但是,如果进行低级编程,您可能希望将索引的子集(例如每1024条或每2048条记录)存储在内存或较小的磁盘区域中,这样您就可以首先查看并搜索较大索引中记录所在的位置 “平方根”规则在这里很有效。因此,如果表中有400万个条目,即2048*2048(大约)。您“加载”2048条记录,然后找到需要加载的主索引的哪个2048记录部分以查找记录,因此您总共只加载2个块,而不必通过2048个块进行二进制搜索
这可能是一个巨大的优化,但它适用于低级程序员,即数据库工具的开发人员,而不是用户。两条建议:1。让你的问题更清楚2:接受你问题的答案我必须与[@Philippe Leybaert]协商,我发现当你表现出关心X-,你有更有效的意见。还有一点很有意思,您能解释一下为什么要尝试这个方法吗?我如何决定何时创建索引或删除索引是合适的?我必须经常从8列的表中访问两列。(假设有些情况下,比如table有1000行、10000行、100万行、200-300万行、500万行)。制作索引总是好的吗?创建索引会变成一个坏主意吗?索引应该在性能糟糕时使用,而不是作为10-1000表的规则。如果您发现查询速度慢,请查看索引。我从未见过有10行的表性能不好,但是加入一个更大的表(10000000)可能会给您带来问题。所以正如那句老话所说,如果它没有坏,就不要修理它