Schema的优化和索引 - 索引的基础

索引是数据结构。它能帮助MySQL更有效率的获取数据。它对于好的性能是决定性的因素,但是人们常常忘记使用它们或者没有正确的理解它们,因此在现实的例子中,索引总是引起性能问题。这就是我们把索引放在这本书的较早部分的原因。甚至把索引这章放在语句优化之前。

 

索引(在MySQL中也叫做键(keys))在数据越来越大的时候,变的格外重要。数据量小,没有高的负载的情况下,在没有索引的情况下,数据库也可以表现的很好,但是随着数据量的增大,性能下降还是非常厉害的。

 

最简单的理解MySQL索引的工作方式就是思考下这本书的索引。你可以通过此书的索引,很容易找到你需要的内容。并且可以知道内容的页码。

 

MySQL使用索引的方式也是相类似的。它查找了值的索引数据结构。当它找到一个匹配,它就能找到包含这个匹配的行。假如你运行一下的语句:

mysql> SELECT first_name FROM sakila.actor WHERE actor_id = 5;

 

在actor_id上会有一个索引,所以MySQL使用索引来查找actor_id为5的行。换句话说,它通过索引来查找值,并且返回包含这些指定值的任意的行。

 

一个索引包含的值是来自于一个表中指定的列或者一些列。如果你索引超过1列的话,列的顺序就尤为重要了。因为MySQL只高效的搜索最左边前缀的索引。你将会看到,在两个列上创建一个索引和为两个列分别创建单独的索引是不同的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值