centos mysql 实战 第三节课
上两节课
1. MySQL的安装
2. MySQL启动方式
今天第一个: MySQL里的对象
查看当前有那些数据库:
show databases;
drop database test;
truncate table mysql.db;
mysql里view当成Table对待了,没有单独的命令能备份视图,只能备份表
information_schema
字典库
performance_schema
性能相关的字典库
MySQL是一个面向存储引擎解决方案的DB
show engines;
还有一些show engines;没有列出来的引擎
tokudb
inforbright/InfiniDB OLAP ,列式存储引擎
mariadb dblink : connect引擎
Memory引擎的坑
Memory 引擎无持久化
对于Memory内存表,数据库重启时,系统会自动发起一个truncate table mem_tb
对于内存表,复制中最好忽略他
mysql.server -> mysqld_safe-> mysqld
mysql体系结构
接入层
SQL接口, 解析,优化,Cache/buffer
存储引擎
文件系统
接入层:
认证, 线程
MySQL里每个连接都是一个线程
一个系统的并发度是有限的
线程数太多,反而系统的处理能力下降
随着连接数上升,反尔性能下降
<5.1 以下的 64个连接
5.5 128
<128个连接
5.6 < 200 个连接
5.7 <200 ,300个连接
案例
吴炳锡(82565387) 20:55:20
LVS 挂了5台WEB, 后端: 1组Cache,三组DB
吴炳锡(82565387) 20:56:06
10台
单组DB上连接数达到6千多
解决方法:引入中间件
收费:kingshard
免费 :thread-pool(percona, mariadb 属于自带的免费的)
server层的核心处理层
SQL interface ; SQL接口
Struct
解析
得到路径
Cache & Buffer
企业接口管理工具
再往下一层就是存储引擎
Innodb
存储文件系统之上
吴炳锡(82565387) 21:04:52
跑MySQL XFS成为标配
mysql日志
error log
generl log
binary log
slow log
在排查DB的问题时,我要知道MySQL有哪些日志
Error log 错误日志
吴炳锡(82565387) 21:09:47
只看[ERROR]和[WARNING]
[Note] 忽略
吴炳锡(82565387) 21:1
数据库出错了,肯定会报错误日志
1. 拿这个错误日志来搜源码,在Linux机器上
Google
把源码附近的注释看看
2. 遇到错误日志
http://bugs.mysql.com/
A230-彭许生-深圳(10031145) 21:19:13
搜问题的时候,偶然进去
general log 常规日志,只适合开发环境打开
所有与mysql的交互都会记录日志,默认是没打开的
全局级别
set global general_log = on;
session级别 开发测试环境最好用session级别
set general_log = on ;
general log用来分析mysqldump的原理mydumper 原理 innbackupex的原理
general log位置
binary log
数据库的所有写操作都会记录到binary log里
数据的库的复制也是使用的binary log
提取binlog统计每张表的insert,update次数
最后一个日志
slow log
execute_time > long-query-time 就会记录
long_query_time = 10s
建议改成1s
注意:
DML : INSERT, UPDATE, DELETE在处理中锁等待的时间不记录
SELECT锁等待的时间会记录
MySQL代码注释有的
f