Mysql索引的使用
来源:互联网 发布:php开发网管软件 snmp 编辑:程序博客网 时间:2024/05/20 23:38
最近想总结下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
- MYSQL索引的使用
- MySQL索引的使用
- mysql 索引的使用
- MySQL索引的使用
- Mysql索引的使用
- MySQL索引的使用
- MySQL索引的使用
- MySQL索引的使用
- mysql索引的使用
- MySQL索引的使用
- MySQL索引的使用
- MySQL索引的使用
- mysql 索引的使用
- MySQL索引的使用
- Mysql索引的使用
- Mysql索引的使用
- MySQL索引的使用
- Mysql索引的使用
- 使用ScheduledThreadPoolExecutor做个简单的调度工具
- MySQL分区表的局限和限制
- Oracle客户端和Oracle服务器端安装以及启动网页版控制台方法
- #后处理器逻辑的实现,WebContextListener实现,blade
- Lucky Sum of Digits
- Mysql索引的使用
- 《SSH框架》---SSH框架与框架
- HDU1201 18岁生日【日期计算】
- eclipse 常用设置
- MySQL---多表操作(1对1、1对多、多对多)
- caffe 自定义层/添加自己的损失函数
- springMvc概念原理分析
- 从零开始,学习web前端之DOM和BOM
- Bootstrap-基本的标签