• 【MySQL】专栏合集,从基础概念到调优


    作者简介

    前言
    博主之前写过一个MySQL的系列,从基础概念、SQL到底层原理、优化,专栏地址:

    https://blog.csdn.net/joker_zjn/category_12305262.html?spm=1001.2014.3001.5482

    本文会是这个系列的清单,拉通来聊一聊Mysql从基础概念一直到优化的相关内容。

    目录

    目录

    1.基础概念和SQL

    2.SQL调优

    3.优化索引

    4.一些工程问题


    1.基础概念和SQL

    文章链接:

    MySQL基础概念和SQL__BugMan的博客-CSDN博客

    这一部分会聊一下MySQL的基础概念和SQL操作,主要包含以下内容:

    1. 什么是MySQL
    2. 关系型、非关系型数据库区别
    3. MySQL的架构
    4. MySQL的一些基础概念
    5. MySQL的数据类型
    6. MySQL的SQL

    1.什么是MySQL

    开源、轻量级的一款关系型数据库,在业内有着广泛应用。

    2.关系型、非关系型数据库的区别

    其实就是数据组织方式的不同,关系型数据库中数据有严格的格式约束,而非关系型数据库里没有。

    3.MySQL的架构

    MySQL的逻辑架构由三层组成,一个MySQL实例中可以有多个库,一个库里面可以有多张表,一张表里面可以有多个字段。

    4.MySQL的一些基础概念

    主要就是要搞清楚,什么是主键?什么是外键?什么是索引?

    5.MySQL的数据类型

    MySQL下设三大类的数据类型:数值、字符串、日期/时间,三大类型中会各自包含具体的小类型,比如数值中会包含BIGINT、FLOAT、DOUBLE等,字符串中会包含CHAR、VARCHAR等。

    6.SQL

    SQL上重要的内容主要分为两个方面:

    1. 操作表和库,包含创建、删除、调整结构等
    2. 操作数据,包含对数据的增加、删除、修改、查询

    2.SQL调优

    文章链接:

    详解MySQL索引失效_mysql复合索引失效__BugMan的博客-CSDN博客

    当MySQL在实际生产环境中,数据量堆积到一定量级后原来的一些查询SQL的速度会变慢,这时候就需要对原来的SQL进行调优,使得其速度能够重新起来。SQL调优也是数据库优化的一个核心点。SQL调优的核心其实就是建出合理的索引,用空间换时间。

    这一部分包含:

    1. B树、B+树
    2. 哪些情况索引会失效

    1.B树、B+树

    B树是一种常见的自平衡树数据结构,广泛用于数据库系统和文件系统等需要高效插入、删除和查找操作的应用中。因为MySQL是将数据存在磁盘上的,如果查找的层级很多的话,意味着寻道、磁头的机械动作就会出现多次,这无疑是很耗时的,所以如果查找的层级少的话,会有很不错的效率。B树就是一种层级很少,但是能存海量数据的树形结构。文中会对B树的数据结构、完整的建树过程、存储数据的容量给出详述,以及对B树的优化结构B+树给出介绍。

    2.哪些情况索引会失效

    其实索引会失效的根本原因就是违反了B树的数据结构,让精准匹配无法走下去了。文章中将会对以下几类常见的索引失效的情况做出详细介绍:

    • 没有用到索引
    • 违反左前缀原则
    • 范围查询断索引
    • like需要分情况
    • 结果数据超过半数

    3.优化索引

    文章链接:

    详解MySQL覆盖索引、索引下推__BugMan的博客-CSDN博客

    SQL调优,只是建了合适的索引,但是有时候索引机制自身也是需要优化的,这一部分会围绕如何优化索引机制来聊一聊,包含:

    1. 覆盖索引
    2. 索引下推

    1.覆盖索引

    MySQL天生自带“回表查询”问题,覆盖索引,是为了避免“回表查询”,从而降低查询耗时的一种使用索引的方法。文章中会详细讲述什么是“回表查询”以及如何使用覆盖索引来解决回表问题。

    2.索引下推

    索引下推,是自MySQL5.6版本引入的一个新特性,目的也是减少“回表查询”,从而提升整体的查询效率。文中会详细聊一下什么是索引下推,如何解决的回表问题。

    4.一些工程问题

    文章链接:

    数据库如何合理生成主键:UUID、雪花算法_主键算法__BugMan的博客-CSDN博客

    实际工程中如何合理生成数据库主键是个问题。首先在实际工程中我们很少用1,2,3......这样的自增主键,比如我要跨数据库进行数据同步、或者在分布式系统中跨“分区”进行数据同步,不难想象,1,2,3......这种递增的单数字是极容易产生冲突的。文章中将会详细介绍主键的一些生成算法,比如UUID、雪花算法等。

  • 相关阅读:
    C 嵌入式系统设计模式 08:硬件代理模式
    RabbitMQ基础篇 笔记
    Java项目:springboot在线选课系统
    Vue 注册全局组件
    LaTeX项目的.gitignore文件内容
    5.SpringIOC源码-Bean循环依赖讲解
    猿创征文|HCIE-Security Day51:单包攻击防范与应用(附场景和配置)
    总体最小二乘法(TLS)
    OpenAI 开发者大会 Sam Altman 45分演讲带来哪些干货和狠货
    【系列】经典算法题 :排序算法空间
  • 原文地址:https://blog.csdn.net/Joker_ZJN/article/details/132779668