【发布时间】:2020-04-05 02:22:43
【问题描述】:
我正在使用HeidiSQL 并且我开始研究索引,因为有一个特别是运行查询的表明显更长,因为它填充了 1,249,848 行。几乎每个表(除了合理的例外)都有一个主键;这很简单。我看到了Socratica's SQL Index 视频,对于一般 SQL 经验有限的人来说,这是一个很棒的手表,但不幸的是她没有说明应该使用哪种类型的索引。
HeidiSQL 允许创建 primary、key、unique、fulltext 和 spatial 索引,至少在 MariaDB 中是这样,而且我在过去几年一直专门使用 MariaDB。我计划添加几个索引的表用于我的蜘蛛日志表的date 和engine 列。我将DATETIME 和VARCHAR() 分别用于这些列,因此我知道要使用哪种类型的索引,尽管我非常感谢将索引与建议进行比较。该手册涵盖了索引所做的什么,但似乎并没有完全涵盖它们与其他索引相比最适合哪些数据集的对比。
【问题讨论】:
-
通常在谈论对表中的数据进行索引时,您的意思是简单的
key索引。其他的用于特殊目的。 -
选择正确的索引取决于您要优化的特定查询。您可能会喜欢我的演示文稿How to Design Indexes, Really,或视频:youtube.com/watch?v=ELR7-RdU9XU
-
或者...mysql.rjweb.org/doc.php/index_cookbook_mysql。你可能想要
KEY(又名INDEX)。