【问题标题】:Mysql index comparison to mysql querymysql索引比较mysql查询
【发布时间】:2012-02-01 08:58:59
【问题描述】:

我有一个关于 mysql 索引的问题。我知道索引是用来加快搜索速度的,但是这种情况有什么区别吗? => 让我们举一些例子。第一个 => mysql 查询 "SELECT name FROM BIO WHERE LIMIT 0,100" 和第二个 =>(假设 dx 是 name 列的索引)mysql 查询 SELECT dx FROM BIO LIMIT 0,100 我认为在那种情况下没有区别,我想听听你们的意见:) 正确地,我应该在第二个示例中这样写是 "SELECT name FROM BIO LIMIT 0,100" 吗? 我在示例中进行了一些更改以表达数据搜索速度 我不太了解索引,因此我问... 谢谢...

更准确地说,我想了解的是(创建的索引列“名称”)索引和仅使用名称搜索数据(如“SELECT name FROM ...”)之间的区别?

【问题讨论】:

  • 我认为它不会产生任何差异,因为搜索不会在索引字段上运行。
  • 不确定您在问什么,但您可以查看“索引覆盖查询”
  • Handler-socket 是你可能感兴趣的另一个话题

标签: mysql search indexing


【解决方案1】:

您知道,您应该索引 id-column 以加快给定的两个查询吗?如果您这样做了,那么由于所选的列应该没有区别。如果 id-column 是整数数据类型,请去掉引号,以便 MySQL 轻松转换 where 子句的数据类型。

SELECT name FROM BIO WHERE id=2;
SELECT dx FROM BIO WHERE id=2

【讨论】:

  • 是的,我猜关于数据类型 :)
  • 说实话,这里没有人知道你想要什么。再次重申:在您给定的示例中,为加快查询速度,不需要对所选列进行索引!
  • 谢谢,我想听听,在这种情况下是否有必要创建索引:)
【解决方案2】:

如果您只在 select 子句中检索索引列的值(并且不在该列上使用 MIN() 或 MAX()),但不在其他任何地方使用该列,则索引不会t 使您的查询更快:

http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2016-04-24
    相关资源
    最近更新 更多