随着网站数据量的增大,一个普通的select语句也会变的很慢,之前一秒不到能打开的页面,现在需要五六秒才慢慢打开,真是严重影响用户体验和搜索引擎优化。据说建立索引能够有效的提高数据库的查询速度,今天略加研究,发现还真是有效。
索引其实很好理解,比如电信公司那里,有个电话记录表,包含下面的字段:日期/时间 打电话的号码 接电话的号码 接通时间 接入交换机 ……很多字段。
如果没有索引, 你要去查询 这个月, 谁给你打电话了,那么 数据库要把这一个月的所有记录, 都读取出来,也就是差不多要 “全表扫描”了,分析接电话的号码 是不是等于你家的电话号码,如果是的话, 还要把打电话的号码返回给你。
如果在接电话的号码 字段上面,有个索引。那么 数据库就可以迅速的定位到你的号码。索引的机制,就是一个类似树形的存储结构,比我数据大的,都在我的左边的节点那里;比我数据小的,都在我的右边的节点那里。这样,可以迅速的找到你家的电话号码。找到你家的电话号码之后,索引那里,存储有记录的实际的物理地址,然后,数据库,根据物理地址,只检索那几条特定的记录,然后把那几条特定的记录的打电话的号码 返回给你。
不难看出,索引确实能够提高查询速度。但索引会带来一定的开销。索引的成本包括:
1、 存储索引的磁盘空间
2、 执行数据修改操作(INSERT、UPDATE、DELETE)产生的索引维护
3、 在数据处理时会需额外的回退空间。
如果你的数据量很大,且能够承受建立索引带来的存储空间的增加以及修改操作的变慢,那么请使用索引吧,一定能够让你的网站更快的。
为mysql数据库建立索引的具体操作很简单,打开phpmyadmin,
选择要建立索引的列,点击“索引”,就可以为你的数据表添加索引了。在最下面的索引表里会增加对应的索引名称。