架构作业:
1、总结mysql常见的存储引擎以及特点。
2、MySQL日志各类总结。
3、主从复制及主主复制的实现
4、xtrabackup实现全量+增量+binlog恢复库
1.1 MyISAM InnoDB存储引擎对比
功能特点 | MyISAM | INNODB |
---|---|---|
事务 | 不支持 | 支持 |
表级锁定 | 支持 | 支持,行级 |
读写相互阻塞 | 支持 | 与事务隔离级别相关 |
缓存 | 只缓存索引 | 数据和索引 |
索引 | 支持 | 支持全文索引 |
外键约束 | 不支持 | 支持 |
聚簇索引 | 不支持 | 支持 |
MVCC高并发 | 不支持 | 支持 |
其他 | 读取快,资源占用少,5.5.5之前默认引擎 | 崩溃恢复性好。5.5.5后默认引擎 |
使用场景 | 只读、表较小 | 适合处理大量短期事务 |
引擎文件 | .frm/.MYD/.MYI | .frm,ibdta1.idb |
其他引擎:
Performance_schema: Performance_schema数据库专用
Memory:所有数据存储RAM,快速访问,存放临时数据,HEAP引擎
常用引擎管理命令:
#查看支持的存储引擎: show engines; #查看默认存储引擎 show variables like '%storage_engine%' #设置默认存储引擎my.cnf [mysqld] default_storage_engine = innoDB # 查看库中所有表使用的存储引擎 show table status from db_name; #查看指定表的存储引擎 show table status like 'tbl_name'; show create table tbl_name; #设置表的存储引擎: create table tbl_name(...) ENGINE=InnoDB; alter table tbl_name ENGINE=InnoDB;
数据库 | 功能 | 说明 |
---|---|---|
mysql | 存储用户、权限、关键字等控制和管理信息 | |
Perforrmance_schema | 收集数据库服务器性能 | 5.5之后产生 |
information_schema | 数据库元数据 | 5.0之后产生 |
sys | 降低P_S复杂度 | 5.7之后增加 |
序号 | 日志类型 | 表示 | 相关变量 | 功能 | 保存位置 |
---|---|---|---|---|---|
1 | 事务日志 | transaction log | innodb_log | redo log undo log |
建议和数据文件分开存放 |
2 | 错误日志 | error log | log_error | 记录运行中的事件信息 | /var/log/mysqld/mysqld.log |
3 | 通用日志 | general log | general_log | 记录对数据库的通用操作,包含错误sql语句 | 默认为file 或者table(mysql.general_log) |
4 | 慢查询日志 | slow query log | slow_query_log | 记录执行查询时长超过指定的操作 | /var/lib/mysql/xx-slow.sql |
5 | 二进制日志 | binary log | sql_bin_log binlog_format max_binlog_size expire_logs_day |
备份,记录已提交导致数据改变的sql语句 | 默认/var/lib/mysql 建议和数据文件分开存放 mysqld-bin.000xx mysql_bin.index 记录当前已有的二进制日志文件列表 |
6 | 中继日志 | relay log | 从服务器依赖relay log同步主库数据 | - |
3.2 错误日志
3.3 通用日志
3.4 慢查询日志
3.5 二进制日志
3.6 中继日志