优点

大大加快数据的查询速度

创建唯一性索引,保证数据库表中每一行数据的唯一性

在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间

缺点

索引需要占物理空间

当对表中的数据进行增删改的时候,索引也要进行修改,降低了数据的维护速度

使用原则

并不是索引越多越好,而是需要自己合理的使用

经常更新的表要避免有过多的索引,而经常查询的字段应该创建索引

数据量小的表最好不要使用索引(因为由于数据较少,可能查询全部数据花费的时间比遍历索引的时间还要短,索引就可能不会产生优化效果)

在相同值多的列上不要建立索引,比如在学生表的"性别"字段上只有男,女两个不同值。相反的,在一个字段上不同值较多可以建立索引。数据之间越不相同,索引速度越快。

索引的类型

普通索引, 唯一索引, 主键索引, 组合索引,全文索引

普通索引

最基本的索引,没有任何限制

直接创建索引:create index index_name on table_name(column_name);

修改表结构的方式创建:alter table table_name add index index_name(column_name);

创建表时指定索引:create table table_name(...,...,index index_name(column_name));

唯一索引

索引列中的值必须是唯一的,允许有空值

直接创建索引:create unique index index_name on table_name(column_name);

修改表结构的方式创建:alter table table_name add unique index index_name(column_name);

创建表时指定索引:create table table_name(...,...,unique index index_name(column_name));

主键索引

是唯一索引的特定类型,不允许有空值;对于主键,关系数据库会自动对其创建主键索引。使用主键索引的效率是最高的,因为主键会保证绝对唯一

创建方式:与创建表时添加主键的方式相同

组合索引

在多个字段上创建的索引

alter table table_name add index index_name(column1,column2,column3);

全文索引

主要用来查找文本中的关键字,而不是直接与索引中的值相比较,它更像是一个搜索引擎

直接创建索引:create fulltext index index_content on table_name(content);

修改表结构的方式创建:alter table table_name add fulltext index index_name(content);

创建表时指定索引:create table table_name(...,...,fulltext index index_name(content));

修改索引名称

alter index old_index_name rename to new_index_name;

删除索引

drop index index_name on product;

最新文章

  1. 深入理解 Android 之 View 的绘制流程
  2. css实现分割线
  3. ubuntu timezone
  4. Spring学习笔记--spring+mybatis集成
  5. eclipse教程
  6. 一步步学习NHibernate(9)——连接查询和子查询(1)
  7. Java面试题之六
  8. windows7下,protel 99se元件库加载问题的解决方案
  9. Qt对ini文件的读写
  10. 理解 ES6 语法中 yield 关键字的返回值
  11. 关于RunLoop
  12. Java 读书笔记 (十五) Java 异常处理
  13. 初识Haskell 三:函数function
  14. mpvue——componets中引入vant-weapp组件
  15. 集成Tomcat环境到Eclipse中
  16. Oracle11g: simple sql script examples
  17. Python 调用图像融合API
  18. 解题:SHOI 2014 概率充电器
  19. react组件的创建
  20. 增强学习训练AI玩游戏

热门文章

  1. RTSP取流设备密码含@
  2. CentOS安装ruby, Haskall,io语言
  3. java_第一年_JavaWeb(5)
  4. dfs(最长路径)
  5. /dev/random vs /dev/urandom
  6. 【TWRP】使用adb sideload线刷ROM的方法
  7. Codecraft-17 and Codeforces Round #391 - C
  8. OkHttp源码剥离导入到eclipse中
  9. PLC 控制系统资源
  10. 【串线篇】加谈数据库之连接join