笔记-MySQL

默认库

  • information_schema
    保存了系统源数据
  • mysql
    数据库用户、权限
  • performance_schema
    服务器性能信息
  • sys
    系统信息

MySQL语法

  • 用户
    create user / set password / grant / revoke

  • create database / show databases / drop database / use

  • select / insert / update / delete
  • 索引
    create index / alter index / drop index

MySQL体系结构

查询过程连接数:max_connections
执行计划:explain

存储引擎

存储引擎描述
InnoDB默认存储引擎,支持事务、外键
MyISAMMySQL5.5前默认存储引擎
CSV
MEMORY
NDB

InnoDB内存结构

基于磁盘存储数据
Page页
Buffer pool刷脏
Redo log
刷脏与Redo log效率差别在于随机IO和顺序IO

MySQL磁盘结构

系统表空间
独占表空间
通用表空间
临时表空间

sql语句执行过程

  1. 从内存或磁盘读取数据
  2. 执行器执行
  3. 写入undo log和redo log
  4. 调存储引擎
  5. 事务提交

索引

本质是一个排序的数据结构
索引类型:普通、唯一、全文(适用于文本类)

索引存储结构

二叉查找树,tree节点(键值、数据磁盘地址、左右子节点引用)
平衡二叉树
多路平衡查找树(B树)
加强版多路平衡查找树(B+树)

索引与存储引擎

InnoDB存储引擎中,tableName_innodb.idb,索引与数据文件是同一个
MyISAM存储引擎中,tableName_myisam.MYI 是索引文件,tableName_myisam.MYD 是数据文件

索引创建与使用规则

  1. 列的离散度
  2. 联合索引最多匹配原则

主键索引存储:索引和数据
辅助索引存储:索引和主键值

事务

  • 脏读
    insert、update
  • 不可重复读
    update、delete
  • 幻读
    insert

MVCC

通过数据请求时点的一致性数据快照,用快照来提供一定级别的一致性读取

  • 行锁
    共享锁(读锁、S锁):LOCK IN SHARE MODE
    排他锁(写锁、X锁):(手动锁)FOR UPDATE / update、insert、delete(自动锁)
    InnoDB锁的是索引记录
  • 表锁

MySQL优化

  1. SQL与索引
    慢查询SQL、执行计划、索引
  2. 存储引擎与表结构
    InnoDB、MyISAM,拆分表
  3. 数据库架构
    Redis、MySQL集群
  4. MySQL配置
    连接数、超时等待时间
  5. 硬件与操作系统
    升级硬件
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值