• 数据库索引-简单了解


    一、什么是索引,为什么要使用索引?

    1.索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构

    2.索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。

    就和汉语字典一样,我们可以按照拼音,部首,笔画等排序的目录(索引),来快速查找到需要的字。

    二、索引的优缺点

    1.最大的优点就是大幅度提高查询效率

    2.缺点:如果要对表进行更改时,数据库不但要保存更改的数据,还要保存索引

    三、索引的分类

    1.普通索引:在任意的字段上创建索引

    2.唯一索引,要求索引的值必须唯一,允许空值

    3.主键索引,在创建表时必须有主键,数据表中默认有主键索引,加速查找+约束(唯一且不为空)

    4.组合索引,就是两个或两个以上的字段的索引

    5.全文索引,用于搜索很长一片文章的时候,效果最好

    四、索引的两个分类

    #我们可以在创建上述索引的时候,为其指定索引类型,分两类

    hash类型的索引:查询单条快,范围查询慢

    btree类型的索引:b+树,层数越多,数据量指数级增长(我们就用它,因为innodb默认支持它)

    #不同的存储引擎支持的索引类型也不一样

    InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;

    MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;

    Memory 不支持事务,支持表级别锁定,支持 B-tree、Hash 等索引,不支持 Full-text 索引;

    NDB 支持事务,支持行级别锁定,支持 Hash 索引,不支持 B-tree、Full-text 等索引;

    Archive 不支持事务,支持表级别锁定,不支持 B-tree、Hash、Full-text 等索引;

    五、索引的创建和删除
    1.在表创建好之后使用

    create index name(索引名) on s1(name); #添加普通索引

    create unique age(索引名) on s1(age);添加唯一索引

    alter table s1(表名) add primary key(id); #添加主键索引,也就是给id字段增加一个主键约束

    create index name(索引名) on s1(id,name); #添加普通联合索引

    2.删除索引

    drop index id on s1;#删除普通索引

    drop index name on s1; #删除联合索引

    drop index age on s1; #删除唯一索引,就和普通索引一样,不用在index前加unique来删,直接就可以删了

    alter table s1 drop primary key; #删除主键(因为它添加的时候是按照alter来增加的,那么我们也用alter来删)

    六、索引使用时应注意的!

    1.只要你创建了索引,在查询时,只要应用了创建了索引的字段,查询时自动调用索引

    2.如果你的查询条件是or的话,如果你or条件中有为添加索引的字段,索引失效

    3.如果你的查询条件是字符串类型,值必须添加引号

    4.如果你的查询条件是!=,普通索引失效

    5.排序条件时,如果索引字段中没有查询的字段,则普通索引无效

    七、什么时候使用索引?

    (1)创建索引时,应该确保索引时应用在SQL查询语句的条件

    (2)创建索引时,如果是blobtext类型,必须指定长度

    (3)可以在创建表时创建索引,也可以在已经创建好的表上创建索引

    (4)一个表中最好不要创建六个以上的索引

    (5)数据量超过300的表应该有索引



     
  • 相关阅读:
    渡一 20 date对象,定时器
    渡一 22 事件
    渡一 21获取窗口属性,dom尺寸,脚本化css
    渡一 18&19 选择器,节点类型&Dom基本操作
    渡一 16-2 dom操作初探
    渡一 16-1 try..catch,es5标准模式
    iOS 相关职位要求整理版
    Mac使用技巧
    issues about Facebook Login
    10_Segue Example
  • 原文地址:https://www.cnblogs.com/cyk2/p/11265701.html
Copyright © 2020-2023  润新知