锁
表锁
行锁 innodb中支持行锁,所以更支持写锁
读锁
写锁
在备份数据的时候,会给这些数据加一个读锁
有些表需要更新/读取数据,需要加一个写锁 自己可读可写
悲观锁:对当前局势过于悲观 需要抢先抢占资源
日志
mysql 4个库
mysql
mysql 的核心数据库,类似于 sql server 中的 master 表,主要负责存储数据库的用户、权限设置、关键字等 mysql 自己需要使用的控制和管理信息。(常用的,在 mysql.user 表中修改 root 用户的密码)。
information_schema
information_schema 提供了访问数据库元数据的方式。(元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有时用于表述该信息的其他术语包括“数据词典”和“系统目录”。)
换句换说,information_schema 是一个信息数据库,它保存着关于 MySQL 服务器所维护的所有其他数据库的信息。(如数据库名,数据库的表,表栏的数据类型与访问权限等。)
performance_schema
主要用于收集数据库服务器性能参数。并且库里表的存储引擎均为 PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为 PERFORMANCE_SCHEMA 的表。MySQL 5.7 默认是开启的。
sys
Sys库所有的数据源来自:performance_schema。目标是把 performance_schema 的把复杂度降低,让 DBA 能更好的阅读这个库里的内容。
错误日志 。avg
默认情况下是开启错误日志
放在数据目录下面
通用日志。log
什么都记,方便审计
存放在数据目录下面
慢日志 。slow
记录那些执行时间比较长的sql ,超过10毫秒就会认为慢
文本的 放在数据目录
二进制日志
默认不开启
查看二进制日志
位置号
第一种是是最好的 0和2,经常丢数据
第一种是默认的,刷机刷到磁盘上
面试题目:
如何优化
innodb下的redo undo
redo重新做
undo 撤销还原
数据库的架构
mysql格式化的
page 页 :16k
已修改未提交,数据在内存中,叫做脏数据
表空间 表文件 一个表就是一个文件 占有一定空间
先写日志 再写数据
撞库:
sql注入
在浏览器中输入语句的时候,黑客攻击会产生sql注入