IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【记录后端学习—MySQL数据库 1】 -> 正文阅读

[大数据]【记录后端学习—MySQL数据库 1】


什么是MySQL

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构画查询语言(SQL)进行数据库管理。

MySQL常用的存储引擎

  • InnoDB:事MySQL的默认存储引擎,支持事务、行锁和外键等操作。
  • MyISAM:是MySQL5.1版本前的默认存储引擎,MyISAM的并发性比较差,不支持事务和外键等操作,默认锁的粒度为表级锁。
    在这里插入图片描述

数据库的三大范式

  • 第一范式:确保每列保持原子性,数据表中的所有字段值都是不可分解的原子值。
  • 第二范式:确保表中的每列都和主键相关。
  • 第三范式:确保每列都和主键列直接相关而不是间接相关。

MySQL的数据类型

在这里插入图片描述

索引

什么是索引

索引是对数据库表的一列或者多列的值进行排序的一种结构,使用索引可以快速访问数据表中的特定信息

索引的优缺点

优点:

  • 大大加快数据检索的速度
  • 将随机I/O变成顺序I/O(因为B+树的叶子节点是连接在一起的)
  • 加速表与表之间的连接

缺点:

  • 从空间角度考虑,建立索引需要占用物理空间
  • 从时间角度考虑,创建和维护索引都需要花费时间,例如对数据进行增删改时都需要维护索引。

索引的数据结构

索引的数据结构主要有B+树和哈希表,对应的索引分别为B+树索引和哈希索引。InnoDB引擎的索引类型有B+树索引和哈希索引,默认的索引类型为B+树索引。

  • B+树索引
    在B+树中,所有的记录节点都是按照键值大小的顺序放在叶子节点上,如图
    在这里插入图片描述由上图可以看出,因为B+树具有有序性,并且所有的数据都存放在叶子节点,所以查找效率很高,支持排序和范围查找。
    在这里插入图片描述
  • 哈希索引
    哈希索引是基于哈希表实现的。对于每一行数据,存储引擎会对索引列通过哈希算法进行哈希计算得到哈希码,并且哈希算法要尽量保证不同的列值计算出的哈希码是不同的,将哈希码的值作为哈希表的key值,将指向数据行的指针作为哈希表的value值。这样查找一个数据的时间复杂度就是o(1),一般多用于精确查找。

Hash索引和B+树的区别

哈希索引一般用多于精确的等值查找,B+索引多用于除了精确的等值查找外的其他查找,大多数情况下,会选择B+树索引。

  • 哈希表不支持排序。因为哈希表是无序的
  • 哈希表不支持范围查找。
  • 哈希索引不支持模糊查询及多列索引的最左前缀匹配
  • 哈希表中存在哈希冲突,所以哈希索引的性能是不稳定的,而B+树的性能是相对稳定的,每次查找都是从根节点到叶子节点。

索引的类型

在这里插入图片描述

索引的种类

在这里插入图片描述

B树和B+树的区别

B树和B+树最主要的区别有两点:

  • B树中的内部节点和叶子节点均存放键和值,而B+树的内部节点只有键没有值,叶子节点存放所有的键和值

  • B+树的叶子节点是通过相连在一起的,方便顺序检索。

    两者结构图如下:
    在这里插入图片描述
    在这里插入图片描述

数据库为什么使用B+树而不是B树

在这里插入图片描述

聚簇索引和非聚簇索引

在这里插入图片描述

非聚簇索引一定会进行回表查询吗

索引的使用场景有哪些

在这里插入图片描述

索引的设计原则

在这里插入图片描述

如何对索引进行优化

在这里插入图片描述

如何创建/删除索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用索引查询时性能一定会提升吗

不一定,因为创建和维护索引需要花费空间和时间上的代价,如果不合理使用索引反而会使查询性能下降。

什么是前缀索引

在这里插入图片描述

什么是最左匹配原则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

索引在什么情况下会失效

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:40:57  更:2022-03-22 20:42:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:28:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码