1.索引的种类(六种)

  普通索引,唯一索引,全文索引,单列索引,多列索引,空间索引

2.优缺点及注意事项

优点:有了索引,对于记录数量很多的表,可以提高查询速度。

缺点:索引是占用空间的,索引会影响update insert delete速度。

以下列出几点使用mysql索引的注意事项。

  a、索引要创建在where和join用到的字段上。

  b、以下操作符号可以应用索引(:<,<=,=,>,>=,BETWEEN,IN,LIKE不以%_开头)

   以下需要注意不使用索引(<>, NOT IN, LIKE %_开头)

    <> 可以用 a>1 or a<3 代替,NOT IN 可以用NOT exists代替

  c、在使用max() min()时最好加上索引。

  d、单索引要创建在确实需要的地方。多列索引有最佳左前缀特性,所以尽量左边的字段是最常用的。

  e、索引不会包括有NULL值,就是有NULL索引就失效。

  f、使用短索引,一个字段字太多,可以建立部分索引,只取前十个字节约空间。

  g、不要在列上运算。例如:where MD5("password") = "myz"。

  h、explain select * from myz 来测试一下语句的效率...

3.存储引擎和索引存储类型

  索引存储类型包含两种:B树型索引和HASH型索引

  MyISAM和InnoDB存储引擎支持B树型索引;MEMORY支持HASH型索引和B树型索引,默认是前者。

4.索引的设计原则

  a.选择唯一性索引

  b.为经常需要排序,分组和联合操作的列建立索引

  c.为常需要作为查询条件的字段建立索引

  d.限制索引的数目

  e.尽量使用数据量少的字段作为索引

  f.尽量使用前缀作为索引

  g.删除不常用的或者很少用的索引

5.创建,修改索引的SQL语句

  

CREATE TABLE 表名(属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
......
[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY[别名](属性名 [(长度)] [ASC|DESC])
);

实例

普通索引创建
CREATE TABLE index1(id INT,name VARCHAR(20),sex BOOLEAN,INDEX(id)); 普通索引修改
CREATE INDEX index1_id ON index1(id);

ALTER TABLE index1 ADD INDEX index1_id(id);
唯一性索引创建
CREATE TABLE index2(id INT UNIQUE,name VARCHAR(20),UNIQUE INDEX index2_id(id ASC)); 唯一性索引修改
CREATE UNIQUE index2_id ON index2(id);

ALTER TABLE index2 ADD UNIQUE INDEX index2_id(id);
全文索引创建
CREATE TABLE index3(id INT,info VARCHAR(20),FULLTEXT INDEX index3_info(info))ENGINE=MyISAM; 全文索引修改
CREATE FULLTEXT INDEX index3_info ON index3(info);

ALTER TABLE index3 ADD FULLTEXT INDEX index3_info(info);
单列索引创建
CREATE TABLE index4(id INT,subject VARCHAR(20),INDEX index4_st(subject(10))); 单列索引修改
CREATE INDEX index4_name ON index4(name);

ALTER TABLE index4 ADD INDEX index4_name(name);
多列索引创建
CREATE TABLE index5(id INT,name VARCHAR(20),sex CHAR(4),INDEX index5_ns(name,sex)); 多列索引修改
CREATE INDEX index5_ns ON index5(name,sex);

ALTER TABLE index5 ADD INDEX index_ns(name,sex);
空间索引创建
CREATE TABLE index6(id INT,space GEOMETRY NOT NULL,SPATIAL INDEX index_sp(space))ENGINE=MyISAM; 空间索引修改
CREATE SPATIAL INDEX index6_sp ON index6(space);

ALTER TABLE index6 ADD SPATIAL INDEX index6_sp(space);

6.删除索引

  DROP INDEX 索引名 ON 表名;

  

MySQL 索引 总结的更多相关文章

  1. 深入MySQL索引

    MySQL索引作为数据库优化的常用手段之一在项目优化中经常会被用到, 但是如何建立高效索引,有效的使用索引以及索引优化的背后到底是什么原理?这次我们深入数据库索引,从索引的数据结构开始说起. 索引原理 ...

  2. MySQL 索引

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是 ...

  3. MYSQL索引结构原理、性能分析与优化

    [转]MYSQL索引结构原理.性能分析与优化 第一部分:基础知识 索引 官方介绍索引是帮助MySQL高效获取数据的数据结构.笔者理解索引相当于一本书的目录,通过目录就知道要的资料在哪里, 不用一页一页 ...

  4. MySQL索引原理及慢查询优化

    原文:http://tech.meituan.com/mysql-index.html 一个慢查询引发的思考 select count(*) from task where status=2 and ...

  5. 【转】MySQL索引背后的数据结构及算法原理

    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...

  6. [转]MySQL索引背后的数据结构及算法原理

    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...

  7. MySQL索引类型总结和使用技巧以及注意事项

    索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable ...

  8. MySQL索引背后的数据结构及算法原理【转】

    本文来自:张洋的MySQL索引背后的数据结构及算法原理 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持 ...

  9. mysql索引总结----mysql 索引类型以及创建

    文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基 ...

  10. Mysql 索引实现原理. 聚集索引, 非聚集索引

    Mysql索引实现: B-tree,B是balance,一般用于数据库的索引.使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度.而B+tree是B-tree的一个变种,My ...

随机推荐

  1. Oracle 四种列转行的方法

    1. Oracle自带列转行函数listagg: 实例: with temp as( select 'China' nation ,'Guangzhou' city from dual union a ...

  2. Mr. Kitayuta vs. Bamboos

    Mr. Kitayuta vs. Bamboos 题目链接:http://codeforces.com/problemset/problem/505/E 参考:http://blog.csdn.net ...

  3. CSS3背景颜色渐变效果

    1.firefox浏览器: background-image: -moz-linear-gradient(top , #eef9fe, #d1ecff); 2.safari.chrome浏览器: ba ...

  4. c# delegate的invoke和bejinInvoke的区别

    先看下面实实例代码 private delegate void testdg(); private void button1_Click(object sender, EventArgs e)     ...

  5. 10.hibernate缓存机制详细分析(转自xiaoluo501395377)

    hibernate缓存机制详细分析   在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别).二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论 ...

  6. 二、WCF应用的通信过程

    注:本文为学习摘抄,原文地址:http://www.cnblogs.com/iamlilinfeng/archive/2012/09/26/2703759.html 一.概述 WCF能够建立一个跨平台 ...

  7. [SOJ]1753 解码

    1753. 解码 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description ZX是另一头04级的牛,他现在在UPen.他跟LLK经 ...

  8. LeetCode OJ Remove Duplicates from Sorted Array II

    Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For exampl ...

  9. Lightoj 1066 Gathering Food (bfs)

    Description Winter is approaching! The weather is getting colder and days are becoming shorter. The ...

  10. 第三次冲刺spring会议(第四次会议)

    [例会时间]2014/5/23 21:15 [例会地点]9#446 [例会形式]轮流发言 [例会主持]马翔 [例会记录]兰梦 小组成员:兰梦 ,马翔,李金吉,赵天,胡佳奇