mysql索引技术_MySQL索引类型
首先请查看不同引擎支持的索引类型:存储引擎简介 。
聚集索引和非聚集索引概念见:聚集索引与非聚集索引 和 聚集索引 。 覆盖索引见:覆盖索引 。
1. InnoDB的每一个表都会有一个聚集索引(第一索引,主键索引)。InnoDB按照主键进行聚集,如果没有定义主键,InnoDB会试着使用唯一的非空索引来代替。如果没有这种索引,InnoDB就会定义隐藏的主键然后在上面进行聚集。
2. InnoDB不支持非主键的聚集索引,默认在主键上建立聚集索引(因为有了主键就有了索引,大量insert速度会变慢?先disable主键再insert?)。如果想在某列建立聚集索引,那么只能将该列设为主键。
3. 聚集索引采用B+Tree。其他索引不采用B+Tree。如果其他索引使用B-Tree,则叶子节点中存储的数据为主键,即先用B-Tree找到该列所属的主键(存储在叶子节点上),再主键通过B+Tree找到该行中所有所需数据(叫做回表?)。
4. B-Tree是索引和数据不同文件存储?应该都是存储在同一文件中。
5. 聚集的覆盖索引默认存在。非聚集覆盖索引的建立需要查询列包含在主键中(组合主键,非最左),并对查询列建立索引。
创建索引语法如下: CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) index_col_name: col_name [(length)] [ASC | DESC] 索引的存储类型目前只有两种(btree和hash),具体和表的模式相关: myisam btree innodb btree memory/heap hash,btree
1.
alter table table_name add index index_name (column_list) ; 普通索引
alter table table_name add unique (column_list) ; 唯一索引
alter table table_name add primary key (column_list) ; 主键索引
其中包括普通索引、UNIQUE索引和PRIMARY KEY索引3种创建索引的格式,table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。
2.
create index index_name on table_name (column_list) ;
create unique index index_name on table_name (column_list) ;
说明:table_name、index_name和column_list具有与ALTER TABLE语句中相同的含义,索引名不可选。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。
3. 删除索引
drop index index_name on table_name ;
alter table table_name drop index index_name ;
alter table table_name drop primary key ;
其中,在前面的两条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。
mysql索引技术_MySQL索引类型相关推荐
- mysql各种索引名称_MySQL索引类型大汇总
本文主要介绍了7种不同类型的MySQL索引类型.在MySQL数据库表中,对字段进行建立索引是可以大幅度的提高其实际查询速度.通过对这些索引的巧妙的运用,我们可以令MySQL的查询和运行更加高效. 索引 ...
- mysql索引总结_mysql 索引类型以及创建
文章归属:http://feiyan.info/16.html 自己还是小白,从借鉴别人的东西开始学习. 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没 ...
- mysql fulltext 排序_mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的区别
Normal 普通索引 > 表示普通索引,大多数情况下都可以使用 Unique 唯一索引 > 表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为uni ...
- mysql中索引类型索引方法_MYSQL索引的类型和索引的方式
索引的类型: normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl: 表示 全文搜索的索 ...
- mysql范围条件_MySQL 索引及优化实战(一)
mysql 随着系统用户量的不断增加,MySQL 索引的重要性不言而喻,对于后端工程师,只有在了解索引及其优化的规则,并应用于实际工作中后,才能不断的提升系统性能,开发出高性能.高并发和高可用的系统. ...
- mysql匹配数据结构_MySQL索引背后的数据结构及原理
前两天经历了武汉一行腾讯面试,数据库索引是一个面试热点,在此搜集相关资料,以备学习之用. 下面是一位牛人写得关于数据库索引的精品之作,因为很好,不敢修饰,转载至此与博友共享. 本文以MySQL数据库为 ...
- mysql索引实例_mysql索引之十:Mysql 索引案例学习
理解索引最好的办法是结合示例,所以这里准备了一个索引的案例. 假设要设计一个在线约会网站,用户信息表有很多列,包裹国家,地区,城市,性别,眼睛颜色,等等.完整必须支持上面这些特征的各种组合来搜索用户, ...
- mysql 索引设计_MySQL 索引原理及设计
原标题:MySQL 索引原理及设计 索引一直是数据库中非常重要的概念,所以了解索引相关的知识是转入后端开发中必不可少的一环.这篇文章是我从开始做后端开发之后至今学习关于索引知识的一个总结,从原先很多概 ...
- mysql多索引结构_MySQL 索引结构
谈到 MYSQL 索引服务端的同学应该是熟悉的不能再熟悉,新建表的时候怎么着都知道先来个主键索引,对于经常查询的列也会加个索引加快查询速度.那么 MYSQL 索引都有哪些类型呢?索引结构是什么样的呢? ...
最新文章
- 我是如何有效的避免测试漏测?
- 解题报告:Fake Maxpooling(单调队列求矩阵的和)
- Material组件之MaterialApp、Scaffold、AppBar学习笔记
- (线段树模板)A Simple Problem with Integers --POJ--3468
- 图像处理中的dpi(Dots Per Inch)是什么单位?(图像每英寸长度内的像素点数)
- 有趣的css图形实现
- python程序运行时间计算公式_Python执行时间的计算方法小结
- 【操作系统】中断和异常的比较
- 奥数 python_奥数赛事china夺得冠军!简单思路用Python解经典数学题
- Focal Loss 分类问题 pytorch实现代码(续1)
- pytorch 测试每一类_2D UNet++ VGGBlock脑胶质瘤分割BraTs + Pytorch实现
- 生活的解释 —— 生物篇
- Html代码打包后如何修改,html代码打包封装成APP教程
- Javascript:闭包、面向对象、构造函数
- ServletContext的用法
- 廖雪峰的Python总结
- 第9章:多媒体基础知识
- 包包各部位名称图解_手袋各部位名称及详解
- java 拼音_GitHub - promeG/TinyPinyin: 适用于Java和Android的快速、低内存占用的汉字转拼音库。...
- java代理模式学习笔记
热门文章
- cad怎么把图层英文变成中文_CAD图层管理器昨天是中文的今天怎么变英文 – 手机爱问...
- druid 非对称加密_springboot配置文件中mysql的密码进行加密
- 专业对不对口重要吗_应届生求职,专业对口到底重不重要?
- 软件测试之黑盒测试-边界值分析法(理论白话学习/期中期末备考)
- delphi if多个条件_Python从入门到精通——一文读懂if语句用法
- 摄像头图像分析目标物体大小位置_摄像头的原理、组成、选型及应用
- 用c语言编程减法计算,求用C编个大数加减法运算程序
- CSerialPort类定义的消息
- php mongo sort -1出错,mongoDB排序引起的ERROR
- 【转】云社区 博客 博客详情 二维异形件排版算法介绍(一)