mysql新增阵列df_DF学Mysql(三)——索引操作
概要:
数据库对象索引其实与书的目录非常相似,主要是为了提高从表中检索数据的速度。
由于数据存储在数据库表中,所以索引是创建在数据库表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储在数据结构(B-树或哈希表)中。通过MYSQL可以快速有效地查找与键值相关联的字段。
索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。
根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。
大多数存储引擎有更高的限制。MYSQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关;
MYISAM和InnoDB存储引擎只支持BTREE索引;MEMORY和HEAP存储引擎可以支持HASH和BTREE索引
索引的优点:
1、通过创建唯一索引,保证数据库表每行数据的唯一性
2、大大加快数据查询速度
3、在使用分组和排序进行数据查询时,可以显著减少查询中分组和排序的时间
索引的缺点:
1、维护索引需要耗费数据库资源
2、索引需要占用磁盘空间,索引文件可能比数据文件更快达到最大文件尺寸
3、当对表的数据进行增删改的时候,因为要维护索引,速度会受到影响
一般下面情况适合创建索引:
1、经常被查询的字段,即在WHERE子句中出现的字段
2、在分组的字段,即在GROUP BY子句中出现的字段
3、存在依赖关系的子表和父表之间的联合查询,即主键或外键字段
4、设置唯一完整性约束的字段
一般下面情况不适合创建索引:
1、在查询中很少被使用的字段
2、拥有许多重复值的字段
索引的分类
1、普通索引和唯一索引
主键索引是一种特殊的唯一索引,不允许有空值
2、单列索引和复合索引
单列索引只包含单个列
复合索引指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用复合索引时遵循最左前缀集合
3、全文索引
全文索引类型为FULLTEXT,在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值。全文索引可以在
CHAR、VARCHAR、TEXT类型列上创建。MYSQL只有MYISAM存储引擎支持全文索引
4、空间索引
空间索引是对空间数据类型的字段建立的索引,MYSQL中的空间数据类型有4种,
分别是GEOMETRY、POINT、LINESTRING、POLYGON。
MYSQL使用SPATIAL关键字进行扩展,使得能够用于创建正规索引类型的语法创建空间索引。创建空间索引的列,必须
将其声明为NOT NULL,空间索引只能在存储引擎为MYISAM的表中创建
mysql新增阵列df_DF学Mysql(三)——索引操作相关推荐
- mysql新增阵列df_DF学Mysql(二)——数据表的基本操作
1.创建数据表 先使用"USE "指定在哪个数据库中操作 CREATE TABLE ( 字段1 数据类型 [列级别约束条件] [默认值], 字段2 数据类型 [列级别约束条件] [ ...
- mysql df_DF学Mysql(一)——数据库基本操作
[技巧.Dotnet]轻松实现“强制.net程序以管理员身份运行". 使用场景: 程序中不少操作都需要特殊权限,有时为了方便,直接让程序以管理员方式运行. (在商业软件中,其实应该尽量避免以 ...
- mysql新增字段位置_图解MySQL | [原理解析] MySQL 为表添加列 是怎么quot;立刻quot;完成的...
在上一期图解 图解MySQL | MySQL DDL为什么成本高?中,我们介绍了: 传统情况下,为表添加列需要对表进行重建 腾讯团队为 MySQL 引入了 Instant Add Column 的方案 ...
- mysql约束_从零开始学 MySQL - SQL 约束分类
目录1.实验简介2.约束 今天我们学习一下 SQL 的约束分类. 1.实验简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验将在实践操作中熟悉 MySQL ...
- mysql和python先学哪个_Python数据库操作 初识mysql和mysql基本操作#学习猿地
# 3.认识和操作一下mysql的基本命令 #### 登录mysql,在终端输入以下命令,进行登录 `mysql -u root -p` ```sql MacBook-Pro:~ yc$ mysql ...
- mysql建立学号与课程编号的索引_数据库mysql 四约束 三范式 六索引
mysql 四约束 三范式 六索引 1.MySQL 约束 1.约束的作用 分类 表列的primary key主键,unique唯一键,not null非空等修饰符常常被称作约束(constraint) ...
- mysql 节点查根_(三)B数、B+树及在数据库索引中应用
在算法逻辑上,二叉树的查找效率和比较次数都是最小的,但是在实际问题中,还要考虑磁盘IO. 数据库索引是存储在磁盘上的,当数据量比较大时,索引可能几个G. 当我们利用索引查询的时候,不能将整个索引全部加 ...
- 读薄《高性能MySql》(三)索引优化
读薄<高性能MySql>(一)MySql基本知识 读薄<高性能MySql>(二)Scheme与数据优化 读薄<高性能MySql>(三)索引优化 读薄<高性能M ...
- linux新增mysql用户_MySQL创建用户的三种方法
前言:MySQL创建用户的方法分成三种:INSERT USER表的方法.CREATE USER的方法.GRANT的方法. 一.账号名称的构成方式 账号的组成方式:用户名+主机(所以可以出现重复的用户名 ...
最新文章
- ASP.NET Core微服务(四)——【静态vue使用axios解析接口】
- SQLLite (三):sqlite3_get_table,sqlite3_free_table
- Linux--网卡聚合简单脚本(bond0)
- java -Date、DateFormat、Calendar类
- 架构系列二:使用Nginx+tomcat实现集群部署
- eclipse离线安装Activiti Designer插件
- swift调用oc_OC与Swift混编,三种场景的实现方式
- 张一鸣退一步,换字节跳动的“海阔天空”
- Magcodes.WeiChat——自定义CustomCreationConverter之实现微信自定义菜单的序列化
- Windows系统服务器IIS7.5 Asp.net支持10万请求的设置方法
- java snmp mib库接收_SNMP MIB 功能开发详细步骤
- android imagebutton 点击效果缩小,imagebutton 设置点击和按压效果
- 竞争情报的网络信息源
- SLG手游的战斗抽象
- DC(Design Compiler)使用说明
- bitnami redmine 4 windows一键式版本安装企业微信插件方法
- DSO Framer ActiveX 控件
- 计算机领域的术语与缩写,计算机和生活常用缩写与术语
- 22个值得收藏的android开源代码-UI篇,kotlin类型转换
- 哪个牌子的护眼台灯适合学生?国AA级照度的护眼台灯
热门文章
- Apache JMeter 测试webservice接口 中文乱码
- 2022春招马蜂窝旅游网第一轮面试 面经
- 使用Git推送代码到GitHub远程仓库
- python serial 发送ctl+c_[已解决]shell 脚本 给命令发送 Ctrl+C信号
- 编写一个C程序,实现以下功能:用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp(char *p1,char *p2);设p1指向字符串s
- 二叉树高度的代码解析_剑指offer 从上到下打印二叉树
- Python for循环 - Python零基础入门教程
- mysql数据库的备份和恢复的常用方法_MySQL数据库备份与恢复方法(转)
- php mysql删除失败_php mysql删除的代码哪里出错了?
- java对xml解析_Java中对xml的解析