


综合
【简单】什么是索引?为什么要使用索引?
“索引”是数据库为了提高查找效率的一种数据结构。
日常生活中,我们可以通过检索目录,来快速定位书本中的内容。索引和数据表,就好比目录和书,想要高效查询数据表,索引至关重要。在数据量小且负载较低时,不恰当的索引对于性能的影响可能还不明显;但随着数据量逐渐增大,性能则会急剧下降。因此,设置合理的索引是数据库查询性能优化的最有效手段。
【简单】索引的优点和缺点是什么?
✔️️️️️️️️ 索引的优点:

概述
CRUD 由英文单词 Create, Read, Update, Delete 的首字母组成,即增删改查。
本文通过介绍基本的 MySQL CRUD 方法,向读者呈现如何访问 MySQL 数据。
扩展阅读:SQL 语法必知必会
概述
数据类型在 MySQL 中扮演着至关重要的角色,它定义了表中每个字段可以存储的数据种类和格式。
MySQL 支持多种类型,大致可以分为三类:数值、时间和字符串类型。

概述
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS 应用软件之一。
本文简单介绍了 MySQL 的功能、特性、发行版本、简史、概念,可以让读者在短时间内对于 MySQL 有一个初步的认识。
部分章节内容更偏向于 DBA 的工作,在实际的开发工作中相关性较少,直接略过。
第一章 MySQL 架构与历史
MySQL 逻辑架构
MySQL 逻辑架构分为三层:
- 连接层 - 连接管理、认证管理
- 核心服务层 - 缓存、解析、优化、执行
- 存储引擎层 - 数据实际读写
并发控制
解决并发问题的最常见方式是加锁。
-
排它锁(exclusive lock) - 也叫写锁(write lock)。锁一次只能被一个线程所持有。
-
共享锁(shared lock) - 也叫读锁(read lock)。锁可被多个线程所持有。
第 1 课 了解 SQL
数据库基础
- 数据库(database) - 保存有组织的数据的容器(通常是一个文件或一组文件)。
- 表(table) - 某种特定类型数据的结构化清单。
- 模式 - 关于数据库和表的布局及特性的信息。
- 列(column) - 表中的一个字段。所有表都是由一个或多个列组成的。
- 数据类型 - 所允许的数据的类型。每个表列都有相应的数据类型,它限制(或允许)该列中存储的数据。
- 行(row) - 表中的一个记录。
- 主键(primary key) - 一列(或一组列),其值能够唯一标识表中每一行。表中的任何列都可以作为主键,只要它满足以下条件:
- 任意两行都不具有相同的主键值;
- 每一行都必须具有一个主键值(主键列不允许 NULL 值);
- 主键列中的值不允许修改或更新;
- 主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行)。
什么是关系型数据库
关系型数据库是指采用了关系模型来组织数据的数据库。关系模型是一种数据模型,它表示数据之间的联系,包括一对一、一对多和多对多的关系。在关系型数据库中,数据以表格的形式存储,每个表格称为一个“关系”,每个关系由行(记录或元组)和列(字段或属性)组成。
常见的关系型数据库有:MySQL、Oracle、PostgreSQL、MariaDB、SQL Server、SQLite 等。
什么是 SQL
SQL 是 Structured Query Language(结构 化查询语言)的缩写。SQL 是一种专门用来与数据库沟通的语言。
复制
复制是解决系统高可用的常见手段。其思路就是:不要把鸡蛋都放在一个篮子里。
复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台从库上,从库本身也可以被配置成另外一台服务器的主库。主库和从库之 间可以有多种不同的组合方式。
MySQL 支持两种复制方式:基于行的复制和基于语句的复制。这两种方式都是通过在主库上记录 bin log、在从库重放日志的方式来实现异步的数据复制。这意味着:复制过程存在时延,这段时间内,主从数据可能不一致。
复制如何工作
在 MySQL 中,复制分为三个步骤,分别由三个线程完成:
01 丨了解 SQL:一门半衰期很长的语言
SQL 语言按照功能划分成以下的 4 个部分:
- DDL 是 Data Definition Language 的缩写,即数据定义语言,它用来定义我们的数据库对象,包括数据库、数据表和列。通过使用 DDL,我们可以创建,删除和修改数据库和表结构。
- DML 是 Data Manipulation Language 的缩写,即数据操作语言,我们用它操作和数据库相关的记录,比如增加、删除、修改数据表中的记录。
- DCL 是 Data Control Language 的缩写,即数据控制语言,我们用它来定义访问权限和安全级别。
- DQL 是 Data Query Language 的缩写,即数据查询语言,我们用它查询想要的记录,它是 SQL 语言的重中之重。在实际的业务中,我们绝大多数情况下都是在和查询打交道,因此学会编写正确且高效的查询语句,是学习的重点。