当前位置: 首页 > news >正文

mysql 索引

mysql 有哪些索引

 

Mysql支持哪几种索引

从数据结构角度

1、B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理

2、hash索引:
a 仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询
b 其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引
c 只有Memory存储引擎显示支持hash索引

3、FULLTEXT索引(现在MyISAM和InnoDB引擎都支持了)

4、R-Tree索引(用于对GIS数据类型创建SPATIAL索引)

从物理存储角度

1、聚集索引(clustered index)

2、非聚集索引(non-clustered index)

从逻辑角度

1、主键索引:主键索引是一种特殊的唯一索引,不允许有空值

2、普通索引或者单列索引

3、多列索引(复合索引):复合索引指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用复合索引时遵循最左前缀集合

4、唯一索引或者非唯一索引

5、空间索引:空间索引是对空间数据类型的字段建立的索引,MYSQL中的空间数据类型有4种,分别是GEOMETRY、POINT、LINESTRING、POLYGON。MYSQL使用SPATIAL关键字进行扩展,使得能够用于创建正规索引类型的语法创建空间索引。创建空间索引的列,必须将其声明为NOT NULL,空间索引只能在存储引擎为MYISAM的表中创建

CREATE TABLE table_name[col_name data type]
[unique|fulltext|spatial][index|key][index_name](col_name[length])[asc|desc]

1、unique|fulltext|spatial为可选参数,分别表示唯一索引、全文索引和空间索引;

2、index和key为同义词,两者作用相同,用来指定创建索引

3、col_name为需要创建索引的字段列,该列必须从数据表中该定义的多个列中选择;

4、index_name指定索引的名称,为可选参数,如果不指定,MYSQL默认col_name为索引值;

5、length为可选参数,表示索引的长度,只有字符串类型的字段才能指定索引长度;

6、asc或desc指定升序或降序的索引值存储

转载于:https://www.cnblogs.com/457248499-qq-com/p/7392174.html

相关文章:

  • 收集尝试登录到服务器的密码尝试失败的ip和次数
  • 谁的属性值优先被访问
  • 字符串拼接性能比较出乎意料的结果
  • P1038 神经网络
  • 了解Job和JobDeatil ,JobDataMap (三)
  • linux shell编程中的数组定义、遍历
  • MySQL 的wait_timeout参数
  • 快递鸟 即时查询接口
  • mySql基础
  • MySQL存储过程、触发器 小例子
  • Linux历史及版本
  • Java面试宝典《转载》
  • Android 03 style简单介绍
  • 黑客学习之信息收集
  • 安卓屏幕旋转时,禁止Activity重新加载
  • 【技术性】Search知识
  • android 一些 utils
  • Apache Pulsar 2.1 重磅发布
  • C# 免费离线人脸识别 2.0 Demo
  • CentOS7 安装JDK
  • create-react-app项目添加less配置
  • CSS 提示工具(Tooltip)
  • FineReport中如何实现自动滚屏效果
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Javascript弹出层-初探
  • mysql_config not found
  • Python学习笔记 字符串拼接
  • quasar-framework cnodejs社区
  • SpiderData 2019年2月25日 DApp数据排行榜
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 基于遗传算法的优化问题求解
  • 近期前端发展计划
  • 试着探索高并发下的系统架构面貌
  • 我与Jetbrains的这些年
  • ​如何在iOS手机上查看应用日志
  • ​用户画像从0到100的构建思路
  • # Maven错误Error executing Maven
  • #DBA杂记1
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (¥1011)-(一千零一拾一元整)输出
  • (C++17) std算法之执行策略 execution
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (区间dp) (经典例题) 石子合并
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)C#调用WebService 基础
  • (转)setTimeout 和 setInterval 的区别
  • (转)负载均衡,回话保持,cookie
  • .htaccess 强制https 单独排除某个目录
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET Standard 的管理策略
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 命令行参数包含应用程序路径吗?