10小时吃透MySQL底层原理 学习笔记Day 2

317 阅读4分钟

hi,我是蛋挞,一个初出茅庐的后端开发,希望可以和大家共同努力、共同进步!


开启掘金成长之旅!这是我参与「掘金日新计划 · 4 月更文挑战」的第 24 天,点击查看活动详情

  • 起始标记->架构篇:「架构篇 | 1」
  • 结尾标记->架构篇:「架构篇 | 1」

MySQL是当前最流行的关系型数据库管理系统之一,它是一个开源的、高性能的、可扩展的数据库管理系统。MySQL有着较为完善的应用场景,用于云计算、移动平台、社交网络等各种规模的应用,成为了数据存储和管理的重要工具之一。

作为一个程序员,我们必须掌握Mysql的基础知识,才能更好地进行数据管理和维护。接下来,我将对MySQL的一些基础知识做一个总结,希望可以帮助大家进一步了解和掌握Mysql。

一、Mysql架构

MySQL主要分为5个组件:

  1. Client:客户端,通常来说,我们都是使用命令行工具连接到Mysql服务器进行命令操作。
  2. Connection Pool:连接池,在多个客户端请求连接Mysql数据库时,连接池会管理这些连接,确保连接的高效使用。
  3. Query Cache:查询缓存,作为数据库层面的缓存,查询结果会进行缓存,比如热点数据等高频访问数据。
  4. Parser:解析器,mysql用解析器将用户执行的命令进行解析,最终形成存下来的指令。
  5. Storage Engine:存储引擎,MySQL支持多种存储引擎,常用的是InnoDB存储引擎,还有MyISAM、Memory等存储引擎。

二、Mysql数据类型

MySQL支持多种数据类型,包括整型、浮点型、字符型、时间日期型等,常见的数据类型有:

  1. 整型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。
  2. 浮点型:FLOAT、DOUBLE、DECIMAL。
  3. 字符型:CHAR、VARCHAR、TEXT、LONGTEXT。
  4. 日期时间型:DATE、TIME、DATETIME、TIMESTAMP。

三、Mysql数据操作

Mysql的数据操作主要包括增加、删除、修改和查询等基本操作。下面分别对这些操作做一个简单的介绍:

  1. 插入数据:使用INSERT语句,可以向指定的表中插入一条或多条数据。
  2. 删除数据:使用DELETE语句,可以删除表中的一条或多条数据。
  3. 修改数据:使用UPDATE语句,可以修改表中的某些数据。
  4. 查询数据:使用SELECT语句,可以从指定的表中查询所需的数据。

四、Mysql索引

索引是数据库中常用的一种优化方法,可以提高查询的效率。Mysql支持B树、B+树和哈希索引等多种索引类型,下面分别介绍一下这些索引类型的特点:

  1. B树索引:B树索引是一种多路搜索树,可以高效查询数据,并支持排序,适用于范围查找。
  2. B+树索引:B+树索引是在B树索引的基础上进行优化,改进了内部节点的构造,把所有叶子节点按照双向指针连接起来,可提高查询效率。
  3. 哈希索引:哈希索引利用哈希函数把数据均匀分布到不同的数据块中,但是哈希索引不支持排序和范围查找。

五、Mysql优化

Mysql的优化可以从多个方面入手,包括索引优化、表结构优化、SQL语句优化等。下面列出一些可优化的方面:

  1. 索引优化:在表设计时,合理设计合适的索引,避免全表扫描。
  2. 表结构优化:选择合适的存储引擎、分表分库等方法,在数据量较大时可以提高查询效率。
  3. SQL语句优化:编写高效的SQL语句,避免子查询、多表连接等耗时操作。

四、Mysql安全

Mysql安全对于数据的安全保护和用户的信息安全都具有重要意义,常见的安全措施有:

  1. 账号管理:合理分配账号权限,避免超级管理员和普通管理员权限交叉。
  2. 权限设置:设置权限等级和资源限制,避免恶意攻击。