MySQL系列:索引基本操作

1. 索引简介

  索引是一种特殊的数据库结构,可以用来快速查询数据中的特定记录。

  MySQL中索引包括:普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。

1.1 索引定义

  索引由数据库表中一列或多列组合而成,作用是提高对表中数据的查询速度。

  索引是创建在表是的,对数据表中一列或多列的值进行排序的一种结构。

  MySQL索引包含两种存储类型:BTREE索引和HASH索引。InnoDB和MyISAM存储引擎支持BTREE索引,MEMORY存储引擎支持HASH索引和BTREE索引,默认为HASH索引。

  索引的优点:可以提高检索数据的速度。

  索引的缺点:创建和维护索引需要耗费时间,耗费的时间随数据量增加而增加;

        索引需要占用物理空间,每一个索引要占一定的物理空间;

        增加、删除和修改数据时,要动态维护索引,降低数据维护速度。

  索引可以提高查询的速度,但会影响插入记录的速度。向有索引的表中插入记录时,数据库系统会按照索引进行排序。

  插入大量记录时,最好的办法是先删除表中的索引,再插入数据,插入完成后,再创建索引。

1.2 索引分类

  MySQL中索引包括:普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。

  1>. 普通索引

  在创建普通索引时,不附加任何限制条件。

  2>. 唯一性索引

  使用UNIQUE设置唯一性索引。在创建唯一性索引时,限制该索引的值必须是唯一的。

  唯一性索引,可以更快地确定某条记录。

  主键是一种特殊的唯一性索引。

  3>. 全文索引

  使用FULLTEXT设置索引为全文索引。全文索引只能创建在CHAR、VARCHAR或TEXT类型的字段上。

  查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度。

  只有MyISAM存储引擎支持全文索引。

  4>. 单列索引

  

1.3 索引设计原则

2. 创建索引

时间: 2024-10-14 04:14:35

MySQL系列:索引基本操作的相关文章

mysql系列--索引

事务 事务,你肯定会想到 ACID(Atomicity.Consistency.Isolation.Durability,即原?性.?致性.隔离性.持久性) 读未提交:?个事务还没提交时,它做的变更就能被别的事务看到.读提交:?个事务提交之后,它做的变更才会被其他事务看到.可重复读:?个事务执?过程中看到的数据,总是跟这个事务在启动时看到的数据是?致的.当然在可重复读隔离级别下,未提交变更对其他事务也是不可?的.串?化:顾名思义是对于同??记录,“写”会加“写锁”,“读”会加“读锁”.当出现读写

Mysql系列(十二)—— 索引下推优化

索引条件下推(ICP)是对MySQL使用索引从表中检索行的情况的优化.如果没有ICP,存储引擎会遍历索引以查找基表中的行,并将它们返回给MySQL服务器,该服务器会评估WHERE行的条件.启用ICP后,如果WHERE只使用索引中的列来评估部分 条件,MySQL服务器会推送这部分内容.WHERE条件下到存储引擎.然后,存储引擎通过使用索引条目来评估推送的索引条件,并且仅当满足该条件时才从表中读取行.ICP可以减少存储引擎必须访问基表的次数以及MySQL服务器必须访问存储引擎的次数. 指数条件下推优

屌炸天实战 MySQL 系列教程(二) 史上最屌、你不知道的数据库操作

此篇写MySQL中最基础,也是最重要的操作! 第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌.你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网远程连接法 查看\创建\使用\删除\清空\修改 数据库表(是否可空,默认值,主键,自增,外键) 表内容的增删改查 where条件.通配符_%.限制limit.排序desc\asc.连表join.组合union 查

MySQL系列(一)

MySQL系列(一)---基础知识大总结 前言:本文主要为mysql基础知识的大总结,mysql的基础知识很多,这里作简单概括性的介绍,具体的细节还是需要自行搜索.当然本文还有很多遗漏的地方,后续会慢慢补充完善. 目录 MySQL系列(一):基础知识大总结 MySQL系列(二):MySQL事务 MySQL系列(三):索引 数据库和数据库软件 数据库是保存有组织数据的容器 DBMS是为管理数据库而设计的软件管理系统,MYSQL.ORACLE 等是数据库管理系统 MYSQL MYSQL是一种数据库管

MySQL系列(二)

MySql 事务 目录 MySQL系列(一):基础知识大总结 MySQL系列(二):MySQL事务 MySQL系列(三):索引 什么是事务(transaction) 保证成批操作要么完全执行,要么完全不执行,维护数据的完整性.也就是要么成功要么失败. 事务可以是n条sql语句(n>=0) 不是所有数据库引擎支持事务,InnoDB引擎支持事务处理 事务四大特性 原子性(Atomic):事务的所有所有操作要么全部执行,要么全部不执行.如果中途出现错误不会停止,而是回滚到事务前的状态 一致性(Cons

屌炸天实战 MySQL 系列教程(四)【秒杀七年经验 LowB工程师】 主从复制、读写分离、模拟宕机、备份恢复方案生产环境实战

第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌.你不知道的数据库操作 第三篇:屌炸天实战 MySQL 系列教程(三)你不知道的 视图.触发器.存储过程.函数.事物.索引.语句 第四篇:屌炸天实战 MySQL 系列教程(四) 主从复制.读写分离.模拟宕机.备份恢复方案生产环境实战 去年公司有一个七年PHP开发经验的工程师,想要跳槽. 去国内某知名互联网公司面试后,被虐惨了,非要我给他讲讲什么是主从

MySQL 系列(二)Jdbc

MySQL 系列(二)Jdbc 一.Jdbc 基本操作 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import org.junit.Test; public class TestJdbc { @Test public void run1() throws Exception{ //1.注册驱动 Cl

mysql之索引原理与慢查询优化

一.介绍 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重.说起加速查询,就不得不提到索引了. 2.为什么要有索引呢? 索引在MySQL中也叫做"键",是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要.索引优化应该是对查询性能优化最有效的手段了.

Mysql数据库索引

索引(Index)是帮助mysql高效获取数据的数据结构.对于高性能非常关键. 索引的重要性主要体现在数据量非常大的时候.规模小,负载轻的数据库即使没有索引也可以获到好的查询效果 例如: 1 mysql>select first_name from actor where actor_id=5; 改索引列位于actor_id列,因此mysql会使用索引找到actor_id为5的行. 索引有很多种类型,各自有各自的特点.索引实在存储引擎层实现的,而不是服务器层. (1).B-Tree索引 谈论引擎