一、索引的类型
1、普通索引   增加 create  index  index_name on table(colume(length)); 
                     例子:create index index_order_no on t_insruance_new_order(order_no(20))
                     删除 drop index index_name on table_name /alter table table_name drop index index_name
2、唯一索引   create unique  index  index_name on table(colume(length));
3、主键索引   主键默认就有索引
4、全文索引   fulltext
5、组合索引   create index index_name_age on t_insruance_new_order_no(name(20),age) //缩小索引的长度可以增加insert的速度
                      组合索引可以是---name,age或者name ,但是不能是age(遵循"最左前缀原则")
-----索引方法:b_tree和hash方法,通常使用b-tree,hash索引,是进行hash处理后的hash值,大小无顺序,但是效率大于B-tree,因为b-tree是从根节点往枝节点,在到叶节点效率比较低
 二、索引的形式
1、单列索引,多列索引   查询时候,mysql只能执行一个索引,所以多列索引会找出这几个索引中限制最高的一个索引,进行查询
三、使用索引的时机
     一般来说,在where和join中需要创建索引,但是也不完全是,因为mysql只对> ,>=,  =,<=,<,between,in 和一些like时候才使用索引,
     例子:使用like时候要特别注意这一点
     对于like来说,使用通配符号(%或者_)开头时候不会使用索引
     select  * from mytable where name like "%俊";  不会使用索引
     select *  from mytable where name like "杨%";  会使用索引
四、索引的不足之处
     1、建立索引会增加查询的速度,会降低更新表的速度,更新表(update.delete.insert.)对表格进行更新的同时,还会对索引文件进行更新
     2、建立索引会占用磁盘空间的索引文件,一般情况下不会有太大问题,但是在一个大数据表格中,创建了多种组合索引,索引文件会膨胀的很         快。
五、使用索引的注意事项
      1、有null值的列,索引失效,所以创建索引的列默认为非null
      2、使用短索引,可以提高检索速度,还可以减少磁盘空间和io操作
      3、索引列的排序,mysql查询只使用一个索引,所以多个索引查询只有用一个最严格的索引,为了提升查询的效率可以添加组合索引,
      4、like模糊查询,通配符放在最前面,索引失效
      5、不要在列上进行计算 select *  from mytable where date(time)>'2007';索引失效---where time>'2007-01-01'
      6、不适用not in和 <>操作
六、索引的方法
借鉴自http://blog.sina.com.cn/s/blog_4aca42510102v5l2.html
1、hash
     这个是以将数据信息进行hash计算,然后存储在一张hash表中,每次来查询都需要遍历整个表,如果数据量很大的情况下,效率很低,并且hash索引背MYISAM默认
2、T-TREE
     树,
 

mysql索引类型-方法-形式-使用时机-不足之处--注意事项的更多相关文章

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

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

  2. MySQL索引类型总结和使用技巧以及注意事项 (转)

      在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表:  代码如下: CREATE TABLE mytable(   ID INT NOT NULL,    us ...

  3. mysql索引类型-形式-使用时机-不足之处--注意事项

    一.索引的类型 1.普通索引   增加 create  index  index_name on table(colume(length));                       例子:cre ...

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

    一.普通索引 这是最基本的索引,它没有任何限制.它有以下几种创建方式: 1.创建索引 CREATE INDEX [indexName] ON [mytable] ([column][(length)] ...

  5. mysql索引类型和索引方法

    索引类型 mysql索引类型normal,unique,full text的区别是什么? normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号 ...

  6. MySQL索引类型及优化

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

  7. mysql进阶(二十六)MySQL 索引类型(初学者必看)

    mysql进阶(二十六)MySQL 索引类型(初学者必看)   索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型.   在数 ...

  8. MySQL索引类型,优化,使用数据结构

    工欲善其事必先利其器 半藏说道:“若你在路途中遇到上帝,上帝也会被割伤.” 一.mysql 索引分类(默认使用B树结构)在数据库表中,对字段建立索引可以大大提高查询速度.通过善用这些索引,可以令 My ...

  9. MySQL索引类型总结和使用技巧

    引用地址:http://www.jb51.net/article/49346.htm 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: 复制代码 代码如下: C ...

随机推荐

  1. Java的第6天,学习运算符

    提到运算符我们就会想起 加 减 乘 除: Java中的一些运算符:关系运算符.逻辑运算符.赋值运算符.和条件运算符: 其中算术运算符有:+ , - , * , \, % ,++, -- ; + , - ...

  2. nginx跳转访问

    server { listen 8888; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; ...

  3. 【Java基础】3、Java 位运算(移位、位与、或、异或、非)

    public class Test { public static void main(String[] args) { // 1.左移( << ) // 0000 0000 0000 0 ...

  4. java - 并发编程易错实例

    生产者消费者问题 https://juejin.im/post/5aeec675f265da0b7c072c56 notify()发生在wait()之前会怎么样?怎么处理? wati()等待条件的变化 ...

  5. 读《阿里Java开发手册》总结(1)

    一·命名约定 类名使用大驼峰式命名(领域模式相关命名除外:如DAO\VO\DO等). 常量必须全部大写,单词中间用“_”隔开(如MAX_COUNT). 抽象类命名使用Abstract或Base开头.异 ...

  6. js之模态对话框

    目标效果:点击页面按钮,显示模态对话框,在模态对话框里点击取消关闭模式对话框. 效果如下 实现代码如下: <!DOCTYPE html> <html lang="en&qu ...

  7. 原生js实现二级联动下拉列表菜单

    二级联动下拉列表菜单的难点在于对后台返回的数据进行解析,不多逼逼,直接上代码 上图是后台返回的数据 实现代码如下: var deviceNotExist = true;//防止数据重复 if(data ...

  8. Excel快捷键大全 Excel2013/2010/2007/2003常用快捷键大全

    一个软件最大的用处是提高工作效率,衡量一个软件的好坏,除了是否出名之外,最主就是能否让一个新手更快的学会这个软件和提高工作速度.就拿Excel表格来说吧,平常办公中我们经常会用它来制作表格,统计数据或 ...

  9. IE push方法,最后一个参数后面不能跟",",否则报语法错误

    var columns = [[]]; columns[0].push( { field: 'ADDNAME', title: '添加人', width: 80, }, { field: 'ADDDT ...

  10. c#中//注释和///注释的区别

    c#中//注释和///注释的区别 ///会被编译,//不会所以使用///会减慢编译的速度(但不会影响执行速度)///会在其它的人调用你的代码时提供智能感知 也是一种注释,但是这种注释主要有两种作用:1 ...