索引SQL数据库

Cfa*_*iak 2 mysql sql sql-server indexing

我有关于索引SQL数据库的问题:

  1. 索引布尔列是否更好,而不是因为只有2个选项?我知道如果表格很小,那么索引不会改变任何东西,但我会询问有1mln记录的表格.
  2. 如果我有两个日期ValidFrom和ValidTo是否最好创建1个索引2列或2个单独的索引?在90%的查询中我使用validfrom <date && validto> date,但也很少有选择只有validfrom或者只有validto
  3. 什么是聚集索引和非聚集索引之间的差异?我找不到任何文章,所以链接会很棒

Kon*_*rak 5

你们都标记了MySQL和SQL服务器.这个答案是MySQL的启发.

  1. 这取决于很多东西,但比尺寸更重要的是变化.如果大约50%的值为TRUE,则表示其余值(也约为50%)为FALSE且索引不会有多大帮助.如果只有2%的值为TRUE且您的查询通常只需要TRUE记录,则此索引将非常有用!
  2. 如果您的查询经常同时使用两者,请将两者放在索引中.如果一个比另一个使用得多,那么将一个FIRST放在索引中,因此复合索引也可以用于一个字段.
  3. 聚簇索引意味着数据实际上是指数内.非聚集索引仅指向数据,实际存储在别处.InnoDB中的PRIMARY KEY是一个聚簇索引.

如果你想在MySQL中使用索引,EXPLAIN就是你的朋友!