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

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

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

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

建议采用innodb数据库

总结

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

在这里插入图片描述

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

在这里插入图片描述
读写分离,中间的就可以启用blackhhole,就可以不在磁盘上保存,用缓存了

在这里插入图片描述
但是这样从主服务器同步,压力太大,就可以换下面的方式
中间就可以用blackhole把数据都放在内存里提高速度

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
老版本想要设置INNOdb,就需要加配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改成功
在这里插入图片描述在这里插入图片描述
查看表是什么存储引擎
在这里插入图片描述

系统自带数据库

在这里插入图片描述在这里插入图片描述

存放性能相关的参数,5.5之后才有
在这里插入图片描述
加载到内存里的,从mysql数据库加载来的在这里插入图片描述

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

在这里插入图片描述
mysqld默认不在path变量在这里插入图片描述mysqld --help --v /verbose 可以查看选项
在这里插入图片描述在这里插入图片描述
数据库服务器变量,存放在数据库中一些可以修改值的变量名
在这里插入图片描述https://dev.mysql.com/doc/refman/5.7/en/server-option-variable%20-reference.html

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

在这里插入图片描述
加在这里的,都是mysql服务器的参数选项在这里插入图片描述命令行说明也是个选项
show variables 查看变量

在这里插入图片描述在这里插入图片描述
可以是变量也可以是选项在这里插入图片描述在这里插入图片描述
skip-grant-tables 破解口用到的,不是变量

在这里插入图片描述在这里插入图片描述
没有这个变量就查不到
在这里插入图片描述在这里插入图片描述在这里插入图片描述
这只是个数据库变量,不是服务器选项在这里插入图片描述
在这里插入图片描述在这里插入图片描述
看mariadb的时候还是,innodb_file_per_table,–选项,和变量在这里插入图片描述在这里插入图片描述变量又分两种,全局和会话的
会话就是当前用户登录一次就算一个会话
global是登录所有的 有效

在这里插入图片描述会话的,compression 是状态变量status var,是只读的
在这里插入图片描述global全局,所有登录到这台机器上面的人都有效
session会话,只针对当前你一个人,设置完以后退出就失效了

debug-sync也是session级别的
在这里插入图片描述在这里插入图片描述
这项是mysql里的,mariadb不存在
在这里插入图片描述
动态就是,修改了,不用重启服务,在线修改,非动态,相当于只读性质的
innodb_encrypt_tables 既是服务器选项也是变量在这里插入图片描述
修改全局需要加global关键字

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值