/01/09 04-存储引擎和数据库选项变量

时间:2024-03-16 15:06:30

2020/01/09 04-存储引擎和数据库选项变量
centos 6 的默认是myisam
2020/01/09 04-存储引擎和数据库选项变量
centos7 默认innodb
2020/01/09 04-存储引擎和数据库选项变量mysql存储引擎是插件式的
2020/01/09 04-存储引擎和数据库选项变量
2020/01/09 04-存储引擎和数据库选项变量聚簇索引,
2020/01/09 04-存储引擎和数据库选项变量
数据缓存
2020/01/09 04-存储引擎和数据库选项变量
外键
2020/01/09 04-存储引擎和数据库选项变量
全文索引,比如在一个文章里搜一个字符串
2020/01/09 04-存储引擎和数据库选项变量
锁的级别
2020/01/09 04-存储引擎和数据库选项变量
锁级别
myisam是表级锁, 带来的 就是并发用户访问受到很大的影响
innodb是行级锁,就可以一个改10行, 一个用户改1行,不冲突
粒度越小,越精细,myisam比较粗

2020/01/09 04-存储引擎和数据库选项变量
2020/01/09 04-存储引擎和数据库选项变量**mVCC
很重要,可以支持多个用户同时去修改数据,并且不会造成影响,可以让你并发访问数据库,不会因为加锁损失并发性。
**
2020/01/09 04-存储引擎和数据库选项变量
mvcc内部机制是,同时有多个事务操作数据库,后面补了每条数据有创建日期和删除日期,数字越大越后创建,越小越早创建
2020/01/09 04-存储引擎和数据库选项变量
删除,就是删除的时候记录的时间
2020/01/09 04-存储引擎和数据库选项变量
假如更新数据了,c改为d,相当于把这个记录删了再重建2020/01/09 04-存储引擎和数据库选项变量
假如在30这个时间点查,123是看不到的,这条i语句是有持续时间的,30到200结点结束,那就是比较你创建操作的30这个时间点小的时候
2020/01/09 04-存储引擎和数据库选项变量
是在删除前看到的,所以看到2020/01/09 04-存储引擎和数据库选项变量
2020/01/09 04-存储引擎和数据库选项变量
myisam不支持事务
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量

事务往往是多个语句组成,有ACID特性,A原子性不可分割,要么做完,要么不做,假如中间做了断电了,重启计算机后会rollback回滚,撤销前面做的,恢复没做之前的

建议采用innodb数据库

总结

2020/01/09 04-存储引擎和数据库选项变量
数据恢复性差,磁盘写文件更新100条记录,执行一半,崩溃,这时候就只更新了前50条,后面的没更新
2020/01/09 04-存储引擎和数据库选项变量
myisam数据库每个表都有独立的三个文件存放
FRM 格式定义
MYD数据
MYI 索引
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
mysql数据库中所有表都是基于myisam存储引擎2020/01/09 04-存储引擎和数据库选项变量
myisam每个表在磁盘上对应三个文件
2020/01/09 04-存储引擎和数据库选项变量
innodb2020/01/09 04-存储引擎和数据库选项变量
较老版本innodb所有表的数据都放在一个磁盘文件里2020/01/09 04-存储引擎和数据库选项变量INNODB是存放两个地方,表的定义是frm
数据是存放在ibddata1的

2020/01/09 04-存储引擎和数据库选项变量

不加innodb_file_per_table,所有数据表都放在一个文件里,加innodb_file_per_table,每个表在磁盘上都有两个文件2020/01/09 04-存储引擎和数据库选项变量
多了ibd文件2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
这里面放的是各种性能指标,访问情况,性能资源情况
2020/01/09 04-存储引擎和数据库选项变量
这个存储引擎给特殊的 使用的
2020/01/09 04-存储引擎和数据库选项变量
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
用的引擎就是内存2020/01/09 04-存储引擎和数据库选项变量
2020/01/09 04-存储引擎和数据库选项变量
example是范例2020/01/09 04-存储引擎和数据库选项变量cluster/NDB是做集群用的
blackhole 黑洞引擎,主从复制使用

2020/01/09 04-存储引擎和数据库选项变量
读写分离,中间的就可以启用blackhhole,就可以不在磁盘上保存,用缓存了

2020/01/09 04-存储引擎和数据库选项变量
但是这样从主服务器同步,压力太大,就可以换下面的方式
中间就可以用blackhole把数据都放在内存里提高速度

2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
老版本想要设置INNOdb,就需要加配置文件
2020/01/09 04-存储引擎和数据库选项变量
2020/01/09 04-存储引擎和数据库选项变量
2020/01/09 04-存储引擎和数据库选项变量
修改成功
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
查看表是什么存储引擎
2020/01/09 04-存储引擎和数据库选项变量

系统自带数据库

2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量

存放性能相关的参数,5.5之后才有
2020/01/09 04-存储引擎和数据库选项变量
加载到内存里的,从mysql数据库加载来的2020/01/09 04-存储引擎和数据库选项变量

mysql选项,服务器选项,状态变量

2020/01/09 04-存储引擎和数据库选项变量
mysqld默认不在path变量2020/01/09 04-存储引擎和数据库选项变量mysqld --help --v /verbose 可以查看选项
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
数据库服务器变量,存放在数据库中一些可以修改值的变量名
2020/01/09 04-存储引擎和数据库选项变量https://dev.mysql.com/doc/refman/5.7/en/server-option-variable%20-reference.html

–是选项,_是变量
也有既是选项又是变量

2020/01/09 04-存储引擎和数据库选项变量
加在这里的,都是mysql服务器的参数选项2020/01/09 04-存储引擎和数据库选项变量命令行说明也是个选项
show variables 查看变量

2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
可以是变量也可以是选项2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
skip-grant-tables **口用到的,不是变量

2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
没有这个变量就查不到
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
这只是个数据库变量,不是服务器选项2020/01/09 04-存储引擎和数据库选项变量
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
看mariadb的时候还是,innodb_file_per_table,–选项,和变量2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量变量又分两种,全局和会话的
会话就是当前用户登录一次就算一个会话
global是登录所有的 有效

2020/01/09 04-存储引擎和数据库选项变量会话的,compression 是状态变量status var,是只读的
2020/01/09 04-存储引擎和数据库选项变量global全局,所有登录到这台机器上面的人都有效
session会话,只针对当前你一个人,设置完以后退出就失效了

debug-sync也是session级别的
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
这项是mysql里的,mariadb不存在
2020/01/09 04-存储引擎和数据库选项变量
动态就是,修改了,不用重启服务,在线修改,非动态,相当于只读性质的
innodb_encrypt_tables 既是服务器选项也是变量2020/01/09 04-存储引擎和数据库选项变量
修改全局需要加global关键字

2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
是session级别的
2020/01/09 04-存储引擎和数据库选项变量
打开一个新终端就还是utf8,只是基于会话级的修改
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
没有立即利用在全局
2020/01/09 04-存储引擎和数据库选项变量
全局的和会话的不一样,而且有些支持动态更改,有些不支持2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
数据库的服务器变量一般设置用set,数据库服务器的变量一般写到my.cnf的配置文件里,重启服务生效
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量sql_mode,,本身就是个变量,既是选项又是变量
2020/01/09 04-存储引擎和数据库选项变量
2020/01/09 04-存储引擎和数据库选项变量
2020/01/09 04-存储引擎和数据库选项变量
不能创建口令为空的用户
2020/01/09 04-存储引擎和数据库选项变量
不允许时间值为空值
2020/01/09 04-存储引擎和数据库选项变量
select的列一定是分组过或者聚合的,否则认为语法出错
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量
超过长度,把你截断了2020/01/09 04-存储引擎和数据库选项变量
会有个提示警报
2020/01/09 04-存储引擎和数据库选项变量
中间加了命令就看不到了需要马上看,提示有数据被截断了
2020/01/09 04-存储引擎和数据库选项变量
可以找一个traditional传统模式2020/01/09 04-存储引擎和数据库选项变量
设置成传统的,超出范围就报错
2020/01/09 04-存储引擎和数据库选项变量2020/01/09 04-存储引擎和数据库选项变量