索引提高查询速度的方法

编辑作者:www.789mux.com    在线用户:33    标签: MySQL    SQL    HTTP   

我们在使用电脑工作的时候经常为了查找一个文件而使用搜索功能,但是有的时候搜索速度非常慢,因此会影响我们的工作效率,那么有什么办法可以提高文件的查询速度吗?下面我们就去看看提高查询速度的方法。

使用索引提高查询速度
1.前言

在web开发中,页面模板,业务逻辑(包括缓存、连接池)和数据库这三个部分,数据库在其中负责执行SQL查询并返回查询结果,是影响网站速度最重要的性能瓶颈。本文主要针对MySql数据库,双十一的电商大战,引发了淘宝技术热议,而淘宝现在去IOE(I代表IBM的缩写,即去IBM的存储设备和小型机;O是代表Oracle的缩写,也即去Oracle数据库,采用和Hadoop替代的解决方案,;E是代表EMC2,即去EMC2的设备性,用PC Server替代EMC2),大量采用MySql集群!让MySql再次成为耀眼的明星!而优化数据的重要一步就是索引的建立,对于mysql中出现的慢查询,我们可以通过使用索引来提升查询速度。索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL将进行全表扫描,从第1条记录开始然后读完整个表直到找出相关的行。

2.mysql索引类型及创建
常用的索引类型有

(1)主键索引
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:

复制代码 代码如下:

CREATE TABLE user(
id int unsigned not null auto_increment,
name varchar(50) not null,
email varchar(40) not null,
primary key (id)
);


(2)普通索引
这是最基本的索引,它没有任何限制。创建方式:

 

代码如下:

 


create index idx_name on user(
name(20)
);


mysql支持前缀索引,一般姓名不会超过20个字符,所以我们这里建立索引的时候限定了长度20,这样可以节省索引文件大小

(3)唯一索引
它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。创建方式:

 

代码如下:

 


CREATE UNIQUE INDEX idx_email ON user(
email
);


(4)全文索引
MySQL支持全文索引和搜索功能。MySQL中的全文索引类型为FULLTEXT的索引。  FULLTEXT 索引仅可用于 MyISAM表;

 

 

 



 

代码如下:

explain select name from fps where name="李武";


索引提高查询速度的方法-第1张图片
[SQL] select name from fps where name="李武";
影响的数据栏: 0
时间: 0.003ms
b.建立索引后

 

 

 

上面主要是关于索引提高查询速度的方法,对于需要频繁新增记录的表,最好不要创建索引,没有索引的表,执行insert、append都很快,有了索引以后,会多了维护索引的操作,一些大表可能导致insert 速度非常慢。

请发表您的评论