广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库索引原理及优化策略是什么
  • 840
分享到

MySQL数据库索引原理及优化策略是什么

mysql 2023-05-12 05:05:29 840人浏览 八月长安
摘要

这篇文章主要介绍“Mysql数据库索引原理及优化策略是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql数据库索引原理及优化策略是什么”文章能帮助大家解决

这篇文章主要介绍“Mysql数据库索引原理及优化策略是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql数据库索引原理及优化策略是什么”文章能帮助大家解决问题。

1 索引

索引概念

索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。

索引作用

数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系,索引所起的作用类似书籍目录,可用于快速定位、检索数据。索引可以极大地提高数据库的性能。

索引的使用场景

要考虑对数据库表的某列或某几列创建索引,需要考虑以下几点:

  • 数据量较大,且经常对这些列进行条件查询。

  • 该数据库表的插入操作,及对这些列的修改操作频率较低。

  • 索引会占用额外的磁盘空间。

2 索引分类

  • 从索引存储结构划分:BTree索引、Hash索引、FULLTEXT全文索引、RTree索引

  • 从应用层次划分:普通索引,唯一索引,主键索引,复合索引

  • 从索引键值类型划分,主键索引,辅助索引(二级索引)

  • 从数据存储和索引键值逻辑关系划分:聚集索引(聚簇索引)非聚集泰引(非聚簇索)

  • 从索引列数量划分:单列索引,复合索引

B树索引和B+树索引区别

MySQL数据库索引原理及优化策略是什么

MySQL数据库索引原理及优化策略是什么

区别:

数据的保存位置不同:B+树保存在叶子节点,B树保存在所有的节点中

体现出B+树优势:节点不存储data,这样一个节点就可以存储更多的key。可以使得树更矮,所以io操作次数更少。 查询性能稳定:每次查询都是从根节点遍历到叶子节点,查询路径长度相同,即每次查询效率相当,时间复杂度固定是O(log(n))

叶子节点的指向:B+树相邻的叶子节点通过指针相连,B树没有

体现出B+树优势:所有叶子节点形成有序链表,便于范围查找

3 索引操作

创建主键索引

-- 在创建表的时候,直接在字段名后指定 primary key
create table user1(id int primary key, name varchar(30));
-- 在创建表的最后,指定某列或某几列为主键索引
create table user2(id int, name varchar(30), primary key(id));
-- 创建表以后再添加主键
create table user3(id int, name varchar(30));
alter table user3 add primary key(id);

主键索引的特点:

  • 一个表中,最多有一个主键索引,当然可以使符合主键

  • 主键索引的效率高(主键不可重复)

  • 创建主键索引的列,它的值不能为null,且不能重复

  • 主键索引的列基本上是int

唯一索引的创建

-- 在表定义时,在某列后直接指定unique唯一属性。
create table user4(id int primary key, name varchar(30) unique);
-- 创建表时,在表的后面指定某列或某几列为unique
create table user5(id int primary key, name varchar(30), unique(name));
-- 创建表以后再添加unique
create table user6(id int primary key, name varchar(30));
alter table user6 add unique(name);

唯一索引的特点:

  • 一个表中,可以有多个唯一索引

  • 查询效率高

  • 如果在某一列建立唯一索引,必须保证这列不能有重复数据

  • 如果一个唯一索引上指定not null,等价于主键索引

普通索引的创建

--在表的定义最后,指定某列为索引
create table user8(id int primary key,
name varchar(20),
email varchar(30),
index(name)
);
--创建完表以后指定某列为普通索引
create table user9(id int primary key, name varchar(20), email varchar(30));
alter table user9 add index(name); 
-- 创建一个索引名为 idx_name 的索引
create table user10(id int primary key, name varchar(20), email varchar(30));
create index idx_name on user10(name);

普通索引的特点:

  • 一个表中可以有多个普通索引,普通索引在实际开发中用的比较多

  • 如果某列需要创建索引,但是该列有重复的值,那么我们就应该使用普通索引

查询索引

  • show keys from 表名

mysql> show keys from Goods\G
*********** 1. row ***********
Table: goods <= 表名
Non_unique: 0 <= 0表示唯一索引
Key_name: PRIMARY <= 主键索引
Seq_in_index: 1
Column_name: goods_id <= 索引在哪列
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE <= 以二叉树形式的索引
Comment:
1 row in set (0.00 sec)

  • show index from 表名;

  • desc 表名

删除索引

  • 删除主键索引: alter table 表名 drop primary key;

  • 其他索引的删除: alter table 表名 drop index 索引名; 索引名就是show keys from 表名中的Key_name 字段

mysql> alter table user10 drop index idx_name;
  • drop index 索引名 on 表名

mysql> drop index name on user8

索引创建原则

  • 比较频繁作为查询条件的字段应该创建索引

  • 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件

  • 更新非常频繁的字段不适合作创建索引

  • 不会出现在where子句中的字段不该创建索引

关于“MySQL数据库索引原理及优化策略是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网数据库频道,小编每天都会为大家更新不同的知识点。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库索引原理及优化策略是什么

本文链接: https://www.lsjlt.com/news/202037.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数据库索引原理及优化策略是什么
    这篇文章主要介绍“MySQL数据库索引原理及优化策略是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL数据库索引原理及优化策略是什么”文章能帮助大家解决...
    99+
    2023-05-12
    mysql
  • MySQL数据库索引原理及优化策略
    目录1 索引索引概念索引作用索引的使用场景2 索引分类B树索引和B+树索引区别3 索引操作创建主键索引唯一索引的创建普通索引的创建查询索引删除索引索引创建原则1 索引 索引概念 索引是一种特殊的文件,包含着对数据表里所有...
    99+
    2023-04-27
    MySQL数据库索引 MySQL数据库索引操作
  • MySQL索引的原理与优化策略是什么
    这篇文章主要介绍了MySQL索引的原理与优化策略是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL索引的原理与优化策略是什么文章都会有所收获,下面我们一起来看看吧。索引的概念MySQL索引是一种用于...
    99+
    2023-07-05
  • 深入解析MySQL索引的原理与优化策略
    目录索引的概念索引的原理索引的类型索引的使用索引的使用方式注意事项索引优化技巧索引的概念 mysql索引是一种用于加速数据库查询的数据结构,它类似于书籍的目录,能够快速指导我们找到需要的信息。MySQL索引可以根据一定的...
    99+
    2023-03-31
    解析MySQL索引原理和优化策略 MySQL索引原理 MySQL优化策略
  • 什么是MySQL索引原理及优化的基本步骤
    不知道大家之前对类似什么是MySQL索引原理及优化的基本步骤的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完什么是MySQL索引原理及优化的基本步骤你一定会有所收获...
    99+
    2022-10-18
  • MySQL索引优化器工作原理是什么
    这篇“MySQL索引优化器工作原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“My...
    99+
    2022-11-30
    mysql
  • PHP与MySQL索引的数据插入和索引重建的性能优化策略及其影响
    概述:在使用PHP和MySQL进行数据插入和查询操作时,索引的设计和使用是非常重要且常用的性能优化策略之一。索引可以提高数据的检索速度,减少查询时间,提高数据库的性能。本文将重点介绍PHP和MySQL中索引的数据插入和索引重建的性能优化策略...
    99+
    2023-10-21
    性能优化 索引 数据插入
  • mysql索引优化的原则是什么
    MySQL索引优化的原则包括以下几点: 选择合适的索引类型:MySQL支持多种索引类型,包括B-Tree索引、哈希索引和全文索引...
    99+
    2023-10-28
    mysql
  • mysql数据库中索引的底层原理是什么
    本篇文章为大家展示了mysql数据库中索引的底层原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。下面,我们举例来说明一下聚集索引和非聚集索引的区别:其实,我...
    99+
    2022-10-18
  • MySQL数据库SQL及索引优化的方法
    MySQL数据库SQL及索引优化的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!     ...
    99+
    2022-10-18
  • MySQL数据库的原理及优点是什么
    MySQL数据库的原理及优点是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。MySQL数据库简称MySQL,是一款由瑞典MySQLAB公司...
    99+
    2022-10-19
  • MySQL数据库的索引原理与慢SQL优化的5大原则
    我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。 本文旨在以开发工程师的角度来解释数...
    99+
    2023-02-18
    MySQL数据库的索引原理与慢SQL优化原则 MySQL建立索引的原则 MySQL慢查询优化基本步骤 MySQLexplain使用
  • MySQL数据库索引及优化的示例详解
    目录一、mysql 索引简介二、索引优化实战三、总结在日常的数据库使用过程中,我们经常需要对数据进行查询、插入、删除等操作。为了提高这些操作的效率,数据库的性能优化显得尤为重要。本文将带你深入了解 MySQL 数据库的索...
    99+
    2023-05-19
    MySQL索引优化方式 MySQL索引 MySQL优化
  • 索引和打包:Python 中的实时优化策略是什么?
    在数据处理领域中,索引和打包是非常重要的概念。在 Python 中,实时优化策略可以帮助我们更好地利用这些概念来提高数据处理的效率。本文将介绍索引和打包的概念,并提供一些实时优化策略的示例代码。 一、索引和打包的概念 索引是指通过某种方式...
    99+
    2023-10-29
    索引 实时 打包
  • MySQL数据库索引的设计原则是什么
    本篇内容主要讲解“MySQL数据库索引的设计原则是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库索引的设计原则是什么”吧!为了使索引的使用效...
    99+
    2022-10-18
  • MySQL的索引原理以及查询优化是怎样的
    本篇文章为大家展示了MySQL的索引原理以及查询优化是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、介绍1.什么是索引?一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作...
    99+
    2023-06-22
  • PHP与MySQL索引的数据更新和索引维护的性能优化策略及其对性能的影响
    摘要:在PHP与MySQL的开发中,索引是优化数据库查询性能的重要工具。本文将介绍索引的基本原理和使用方法,并探讨索引对数据更新和维护的性能影响。同时,本文还提供了一些性能优化策略和具体的代码示例,帮助开发者更好地理解和应用索引。索引的基本...
    99+
    2023-10-21
    PHP 性能优化 MySQL索引 关键词:
  • MySQL数据库优化之索引实现原理与用法分析
    本文实例讲述了MySQL数据库优化之索引实现原理与用法。分享给大家供大家参考,具体如下: 索引 什么是索引 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行...
    99+
    2022-10-18
  • Mysql索引底层及优化方法是什么
    今天小编给大家分享一下Mysql索引底层及优化方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2022-10-19
  • SQL索引以及数据库优化是怎样的
    这篇文章给大家介绍SQL索引以及数据库优化是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。(一)深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。微软的SQL SER...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作