索引:是一个数据结构,用来快速访问数据库表格或者视图里的数据,需要存储空间。

数据库的索引的原理:主要用于提高查询效率,也就是按条件查询的时候,先查询索引,

再通过索引找到相关的数据,索引相当于记录了对某个关键词,指定到不同的文件,

或者文件里的不同位置的结构。

索引会降低数据更新的效率,当插入、修改、删除时会引起索引结构的更新

--建立索引--

create [unique] index i_sex on student(studentname);

--unique,可选,表明该索引中,不能有重复值,如果有重复值,索引建立时会报错--

--索引可以建立在单个列上,也可以建立在多个列上--

--修改索引--

alter [unique] index i_sex rebuild STORAGE ( INITIAL 1M NEXT 512k);

--unique,可选。rebuild是根据原来的索引结构,重新建立索引,通过重建索引,可以减少硬盘碎片和提高应用系---统的性能---

--删除索引--

drop index i_sex;

作用:

①减少了数据检索的时间

②保证了数据的唯一性

③表与表之前的参照完整性

④减少了在分组、排序的检索时间

缺点:

①创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

②除了数据表占数据空间之外,每一个索引还要占一定的物理空间。

③当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。

一般来说,应该在这些列上创建索引:

在经常需要搜索的列上,可以加快搜索的速度;

在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;

在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;

在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;

在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;

在经常使用在where子句中的列上面创建索引,加快条件的判断速度。

同样,对于有些列不应该创建索引。一般来说,不应该创建索引的的这些列具有下列特点:

第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。

第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。

第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。

第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。

mysql索引的概念和作用_索引的基本概念及作用相关推荐

  1. 范数在机器学习中的作用_设计在机器学习中的作用

    范数在机器学习中的作用 Today, machine learning (ML) is a component of practically all new software products. Fo ...

  2. 举例说明儿化音的作用_儿化韵有何作用举例说明

    儿化韵有何作用举例说明 [篇一:儿化韵有何作用举例说明] 儿化 " 的作用 " 儿 " 连在别的音节后面作词尾时,就失去独立性,和前面的音节融 合成一个音节,使前一个音节 ...

  3. or导致索引失效的解决方法_索引失效原因总结

    索引为什么会失效?总的来说有两大点: 第一,完全失效,即该表的索引不可用.原因:当某些操作导致数据的rowid改变, 索引就会完全失效. 那什么时候会导致rowid改变使得索引unuseable或者i ...

  4. mysql中储存过程的作用_存储过程在数据库中的作用是什么

    存储过程在数据库中的作用:1.存储过程可接受参数.输出参数.返回单个或多个结果集及返回值:2.存储过程运行比较稳定,不会有太多的错误:3.存储过程主要是在服务器上运行,减少对客户机的压力. 存储过程在 ...

  5. 简述数据字典的结构及其作用_数据结构——树基本概念及其遍历

    树 1.概念 树结构是一种描述非线性层次关系的数据结构 在一个数结构中,有且仅有一个结点没有直接前驱,这个结点就是树的结点. 除根结点外,其余每个结点有且仅有一个直接前驱. 每个结点可以有任意多个直接 ...

  6. 统计信息在数据库中的作用_统计在行业中的作用

    统计信息在数据库中的作用 数据科学与机器学习 (DATA SCIENCE AND MACHINE LEARNING) Statistics are everywhere, and most indus ...

  7. python在平面设计中的作用_图像处理在平面设计中的作用

    图像处理在平面设计中的作用 处在风华正茂的我们站在 20 出头的路上,退出了懵懵懂懂的少年时光,开始露出了充 满活力与未来的青年锋芒. 我们经历了短暂而铭心的艺考, 完成了难忘的高考时光, 我们有 过 ...

  8. 医学科研中的作用_医学论文中参考文献的作用及常见类型

    参考文献是医学论文不可或缺的内容,是构成完整论文的重要组成部分,它是医学论文作者为指明自己的论据和数据出处,为读者提供具体详细的文献信息.医刊汇编译对其主要作用归纳如下: 1.说明作用.说明哪些是自己 ...

  9. 为什么要 conda 作用_武汉精神堡垒有什么作用 为什么要做?

    精神堡垒之所以最能吸引大家的眼球,和它伟岸的立柱分不开,即使离得很远,一眼就能被看到.做为这种与众不同的造型艺术质粒载体,精神堡垒的作用有哪些呢?时代经典小编就给大家详细讲解一下,希望能给大家带来帮助 ...

最新文章

  1. redistemplate分布式锁实现_基于 Redis SETNX 实现分布式锁
  2. linux防火墙之 ufw
  3. MySQL 中的 FOUND_ROWS() 与 ROW_COUNT() 函数
  4. 信息系统项目管理师:第1章:信息化与信息系统(2)-重点汇总
  5. C语言实现段树segment tree(附完整源码)
  6. 服务器 远程存储,数据储存——远程服务器存储——框架方式
  7. python get post请求_使用python封装get+post请求
  8. 自监督学习在CV领域研究进展总结
  9. c++字符数组整数转换中文大写金额的形式_数字大写转换烦,内置格式多缺陷, VBA函数来解难...
  10. 使用 Swiftype 给 Hexo 搭建的博客添加站内搜索功能
  11. 38.Linux/Unix 系统编程手册(下) -- 编写安全的特权程序
  12. 解决:本地计算机上的MySQL80服务启动后停止,某些服务在未由其他服务或者程序使用时将自动停止
  13. 基于Arduino和Mixly(超声波+蜂鸣器)实现距离报警
  14. html5 旋转木马相册,HTML5 CSS3 专题 :诱人的实例 3D旋转木马效果相册
  15. Matlab运动模糊,维纳滤波
  16. 模拟电路-模拟加法器的设计和仿真
  17. 最好用的jpg转pdf软件
  18. 银行信息技术岗面试总结----中信浦发工商建行
  19. 脚注交叉引用序号不一样_不为人知的Word交叉引用设置
  20. 张居正-良心与理想-当年明月

热门文章

  1. 【算法】BloomFilter 与 CuckooFilter
  2. 【java】java基础之SPI框架实现-整体设计
  3. Git仓库只拷贝代码-不拷贝提交记录-不拷贝其他分支
  4. MySQL日期处理-查询间隔数据
  5. Git的使用教程(一)
  6. 用例子理解java7内存结构
  7. android网页接口实现方法,Android 程序员搞 web 之 webApi (十 四)
  8. Mysql过长的Sql语句优化:在循环中调用存储过程运行动态语句
  9. mysql字符串比较数字
  10. 机器学习之线性回归的改进-岭回归