MySQL索引
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL索引,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1872字,纯文字阅读大概需要3分钟。
内容图文
mysql索引
注意:创建索引的基本原则
索引要建在使用比较多的字段上
尽量不要在相同值比较多的列建立索引,比如性别、年龄等字段
对于经常进行数据存取的列不要建立索引
对于有外键引用的表,在主键和外键上建立索引
1、普通索引
索引创建的三种方式=====
主键是一种特殊索引
表已创建 ===help create index;
create index ipaddr_idx on test(ipaddr);
mysql> create index ipaddr_idx on weblog(ipaddr DESC) using btree; ====hash
alter table zzz add index (ipaddr)
mysql> create table stu (id int primary key,name varchar(30),sex enum(‘man‘,‘wom‘),score float(4,1),addr varchar(60),index addr_idx (addr));
drop index ipaddr_idx on test;
(1)在employees表中查询first_name以Mery开头的所有员工
(2)在employees表中查询first_name包含mar字符的员工
(3)在employees表中查询last_name以He开头的员工
(4)在employees表中查询last_name包含oo字符的员工
explain select * from employees where first_name like ‘Mery%‘\G
explain select * from employees where first_name like ‘%mar%‘\G
2、唯一索引 =====列值必须唯一,但允许有空值
mysql> create unique index size_idx on weblog(size);
3、全文索引===================用于在char,varchar,text等文本类型的字段中
create fulltext index flname_idx on employees(first_name,last_name);
练习:观察下列查询在没有建立索引前所使用的时间和 索引后所使用的时间,建立索引后下列那些查询没有使用索引。
mysql> select * from employees where match(first_name,last_name) against(‘Mary‘)
###############单列索引、多列索引
4、聚集索引
对于innodb存储引擎
如果表里面包含有主键,直接使用主键做聚集索引
如果没有主键,则将第一个包含not null属性的unique index列作为聚集索引
如果前两个条件都不满足,则mysql会自动增加一个autoincrement的列作为聚集索引
5、空间索引
索引使用总结:
(1)索引一般在<,>,<=,>=,between,in以及某些情况下的like等操作符上才能使用
(2)如果使用like,则%或_不能位于开头
(3)如果使用多列索引,则第一列必须包含匹配的条件
(4)如果在列上使用函数则不能使用索引
<> =============primary key使用索引==其他索引不使用
mysql> explain select * from employees where first_name like ‘o%‘ and last_name like‘m%‘\G
索引的缺点:
创建索引会占用磁盘空间,尤其是表很大且创建索引的字段值比较多且内容比较长的话更是如此
对于写入操作,如insert、update、delete等操作,索引会降低它们的速度
show variables like ‘%query%‘;
mysql> show status like ‘%qcache%‘; ======mysql可以通过缓存查看数据
本文出自 “kenasel” 博客,请务必保留此出处http://kenasel.blog.51cto.com/10620829/1839503
原文:http://kenasel.blog.51cto.com/10620829/1839503
内容总结
以上是互联网集市为您收集整理的MySQL索引全部内容,希望文章能够帮你解决MySQL索引所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。