Mysql索引的使用

最近想总结下mysql索引的知识点,搜索资料后发现,mysql索引是个很大的学问。今天就在应用层面去学习如何使用索引,
如果想深入理解索引,可以问问我们强大的百度…
索引是帮助mysql高效获取数据的数据结构。

一、按类型区分

索引类型:定义表索引的类型

normal索引是最近本的索引,没有对唯一性的限制

unique索引和normal类似,只是索引列的全部值必须只能出现一次

full text索引用于mysql全文索引,用于在一篇文章中,检索文本信息。InnoDB不支持,Myisam支持性能比较好,一般在 CHAR、VARCHAR 或 TEXT 列上创建。

主键索引 针对主键的检索,设置某字段为primary key主键
主键就是唯一索引的一种,主键要求建表时指定,一般用auto_increatment列,关键字是primary key
索引方法:当创建索引时,指定索引类型,btree或者hash(全文搜索的时候没有)

二、按字段数量分

1.mysql索引分为单列索引和组合索引
单列索引:一个索引包含单个列,一个表可以有多个单列索引。

组合索引:一个索引包含多列。(符合最左前缀)
索引可以是单列索引也可以是多列索引(也叫复合索引)。按照上面形式创建出来的索引是单列索引,现在先看看创建多列索引:

create table test3 (id int not null primary key auto_increment, account int(12) not null default '',account_type int(2) not null,INDEX(account,account_type))type
=myisam;

注意:INDEX(a, b, c)可以当做a或(a, b)的索引来使用,但和b、c或(b,c)的索引来使用这是一个最左前缀的优化方法。

三、创建索引

sql语句创建索引

创建索引:

create unique index 索引名 on 表名(列名);
alter table 表名 add unique index 索引名 (列名);

删除索引:

drop index 索引名 on 表名;
alter table 表名 drop index 索引名;

nativecat创建索引

创建索引

四、合理建立索引

1.在表中有where和join中出现的列需要建立索引,mysql只针对<,<=,=,>,>=,between,in以及like才会使用索引
2.表中某属性的字段(如user_key)是唯一的不能为空。可以建立unique索引。
3.索引不是越多越好,如果索引过多,更新表数据时候也会很耗时。
参考文件:
建立索引的原则http://blog.csdn.net/u013412790/article/details/51612304
mysql索引优化http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html
索引的原理http://blog.csdn.net/debug_zhang/article/details/52168552

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL索引是用于提高查询效率的一种数据结构。它可以加速数据的查找和排序操作,减少数据库的IO负载。 使用索引的好处包括: 1. 提高查询速度:索引可以将数据按照特定的顺序存储,使得数据库可以更快地定位和检索数据,从而提高查询速度。 2. 减少磁盘IO:通过使用索引,数据库可以减少磁盘IO次数,从而减少数据检索所需的时间。 3. 加速排序操作:如果查询包含了排序操作,使用索引可以加快排序速度。 4. 提高数据的唯一性约束:通过在列上创建唯一索引,可以确保列的值是唯一的。 5. 加速连接操作:在多表连接查询使用索引可以加快连接操作的速度。 要正确使用MySQL索引,需要注意以下几点: 1.选择合适的列进行索引:通常选择经常用于查询条件的列作为索引列,同时需要考虑选择性,即索引列的值是否具有较高的区分度。 2. 避免过多的索引:过多的索引会增加数据库的维护成本,并且可能降低写操作的性能。 3. 避免重复和冗余索引:重复和冗余的索引不仅浪费存储空间,还会增加索引维护的成本。 4. 更新索引统计信息:MySQL会根据索引统计信息来选择使用哪个索引,因此定期更新索引统计信息是很重要的。 5. 考虑联合索引使用多列的联合索引可以提高复合条件查询的效率。 总之,合理使用索引可以显著提高MySQL数据库的查询性能和整体性能。但是需要根据具体情况进行索引的创建和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值