2012-06-21 48 views
0

好吧,mysql索引。索引只不过是在WHERE子句中使用的每一行都有一个唯一的ID?什么是mysql索引,以及如何创建索引?

索引表时,进程是否将任何信息添加到表中?例如,另一列或值的地方。

当检索值时,索引是否即时发生,或者是如何将插入或更新函数放入表中的值?

任何更多的信息来清楚地解释mysql索引将不胜感激。并且请不要只是链接到mysql文档,这很让人困惑,并且最好从专业人士处获得个人回应。

最后,为什么索引不同于告诉mysql在两个值之间查找值。例如:WHERE create_time> ='AweekAgo'

我在问,因为我的一张表是220,000多行,它需要一分钟以上才能返回一个非常简单的mysql select语句的值,我希望索引将加快这一点。

谢谢先进。

+1

是的,索引会让你的查询快得多。阅读文档:http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html –

+0

真的......你无法为你提供自己的想法。如果我完全理解该文档,您认为我会在这里写作。 stackoverflow的存在不是为了将人们重定向到他们可以轻松使用谷歌的东西,而是让人们来问一个问题,就好像与专业人士交谈一样。谢谢你没有阅读我的问题。 – knittledan

回答

1

数据库索引是一种提高表中操作速度的数据结构。可以使用一列或多列创建索引,为快速随机查找和有效访问记录顺序提供基础。

您可以创建一个像这样的指标:

CREATE INDEX index_name 
ON table_name (column1, column2,...); 

你可能会更复杂的数据库上工作,所以这是很好的记住一些简单的规则。

  • 索引减慢了插入和更新,因此您希望在频繁更新的列上仔细使用它们。

  • 索引加速where子句和order by。

对于进一步的细节,你可以阅读:

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

http://www.tutorialspoint.com/mysql/mysql-indexes.htm

2

你被投下来,因为你没有花精力去阅读或搜索你所要求的。 A simple search in google本来可以告诉你Database Index的优点和缺点。这里是a related question on StackOverflow。我确信有很多这样的问题。

为了简化问题,如果按照专业领域编排书架,将会更容易在图书馆找到书籍。您可以轻松地告诉某人前往特定地点并选择该书 - 这就是索引的做法

另一个示例:想象一个按字母顺序排列的入场列表。如果你的名字以Z开头,你只需跳过A到Y然后到Z-更快?否则,您将不得不搜索并搜索,如果您没有仔细查看,甚至可能找不到它。

+0

我的一些问题很容易在谷歌上搜索到,但其他的问题不仅仅是为了找出答案,所以我来这里澄清。谢谢你多一点澄清 – knittledan

0

有很多索引,例如散列,特里结构,空间索引。这取决于价值。很可能它是一个散列和二叉搜索树。没有什么真正的幻想,因为最有可能花哨的东西是昂贵的。