美文网首页
Mysql 索引

Mysql 索引

作者: 1b1bd2eb600a | 来源:发表于2018-12-17 10:57 被阅读4次

什么是索引

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

索引的类型

  • 普通索引
  • 唯一索引 unique
  • 主键索引
  • 组合索引
  • 全文索引 fulltext
CREATE TABLE table_name[col_name data type]
[unique|fulltext][index|key][index_name](col_name[length])[asc|desc]

1.unique|fulltext为可选参数,分别表示唯一索引、全文索引
2.index和key为同义词,两者作用相同,用来指定创建索引
3.col_name为需要创建索引的字段列,该列必须从数据表中该定义的多个列中选择
4.index_name指定索引的名称,为可选参数,如果不指定,默认col_name为索引值
5.length为可选参数,表示索引的长度,只有字符串类型的字段才能指定索引长度
6.asc或desc指定升序或降序的索引值存储

作用

  • 可以大大加快数据的检索速度,这也是创建索引的最主要的原因
  • 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
  • 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义
  • 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间
  • 建立索引,可以在查询的过程中,提高系统的性能

索引的坏处

  • 创建和维护索引需要耗费时间,这个随数据量增加而增加。
  • 索引需要占用物理空间
  • 对表增删改也需要动态维护,降低数据库维护速度

数据表建立索引的原则

  • 经常需要搜索的列上,可以加快搜索的速度
  • 作为主键的列上,强制该列的唯一性和组织表中数据的排列结构
  • .经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度
  • 经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的
  • 经常需要排序的列上创 建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间
  • 经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度

索引的使用

  • 以下操作符号可以应用索引
    :<,<=,=,>,>=,BETWEEN,IN,LIKE不以%_开头
  • 以下需要注意不使用索引
    <>, NOT IN, LIKE %_开头
    <> 可以用 a>1 or a<3 代替,NOT IN 可以用NOT exists代替
  • 在使用max() min()时最好加上索引.
  • 索引不会包括有NULL值,就是有NULL,索引就失效
  • 使用短索引

索引的创建

create [unique] index 索引名
on 表名称 (字段名[(长度)]);
//unique 唯一性 不允许具有索引值相同的行,从而禁止重复的索引或键值

CREATE INDEX account_Index ON `award`(`account`);
ALTER TABLE award ADD INDEX account_Index(`account`);
CREATE UNIQUE INDEX IndexName ON `TableName`(`字段名`(length));

索引的删除

drop index 索引名 on 表名称;

相关文章

  • MySQL索引及查询优化书目录

    MySQL索引的原理之索引目的 MySQL索引的原理之索引原理 MySQL索引的原理之索引的类型 MySQL索引的...

  • 高性能的索引策略

    MySQL查询基础-查询执行过程 MySQL聚簇索引 MySQL覆盖索引 MySQL索引扫描排序 MySQL冗余和...

  • MySQL索引的使用

    MySQL索引 MySQL索引可以快速提高MySQL的检索速度。索引分单列索引和组合索引单列索引:即一个索引只包含...

  • Mysql索引与锁

    本文以Mysql5.7为例测试。 1:mysql索引方法 Mysql的索引方法分为btree索引和hash索引。 ...

  • 索引(二)

    mysql索引的新手入门详解mysql索引之三:索引使用注意规则 索引(Index)是帮助 MySQL 高效获取数...

  • MySQL 索引分类

    MySQL索引的分类(根据数据结构) 索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL...

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • mysql索引

    索引 mysql索引的建立对于mysql的高效运行是很重要的,索引可以大大提高mysql的检索速度。索引分单列索引...

  • 5.2MySQL创建高性能索引考察点

    MySQL索引的基础和类型延伸:MySQL索引的创建原则延伸:MySQL索引的注意事项 索引的基础索引类似于书籍的...

  • MySql 数据查询优化

    1. MySQL索引类型: mysql的索引有5种:主键索引、普通索引、唯一索引、全文索引、聚合索引(多列索引)。...

网友评论

      本文标题:Mysql 索引

      本文链接:https://www.haomeiwen.com/subject/wzrqkqtx.html