第一百一十四天 : MySQL进阶管理

MySQL

内部数据集在磁盘上, 某一次读取操作, 消耗的代价是巨大的.
所以要使用索引

  • 连接管理器
  • 线程管理器
  • 用户管理器 : 用户的访问还受访问控制器的限制
约束

主键约束 : 唯一非空,一张表只能有一个
外键约束 : 参考性约束, 引用性约束
唯一键约束 : 唯一, 可存在多个
检查性约束 : 对值进行检查

MySQL事务

事务 : 一组原子性的SQL查询, 或者多个SQL 语句组成了一个独立的工作单元
事物日志 : 将随机写改为顺序写
- 相关的配置参数( 建议在启动之前修改, 启动后临时修改无效, 必须重启服务才能生效)

innodb_log_file_size       5242880
innodb_log_files_in_group    2
innodb_log_group_home_dir    ./
ACID 测试
  • A : automaticity 原子性, 整个事物中所有操作要么全部成功执行, 要么全部失败后回滚
  • C : consistency 一致性, 数据库总是从一个一致性砖塔转换为另一个一致性状态
  • I : isolation 隔离性, 一个事物所做出的操作在提交之前, 是不能为其他事务缩减, 隔离有多种级别, 主要是为了并发
  • D : durability 持久性, 事务一旦提交, 其所做的修改会永久保存于数据库中

事物 : 推荐使用innodb 存储引擎, MySQL 默认把每个语句作为一个事务来进行提交
启动事务 : START TRANSACTION
结束事务 :
- 完成, 提交 : COMMIT
- 未完成, 回滚 : ROLLBACK

事物支持savepoint :

SAVEPOINT indentifier;
ROLLBACK TO [SAVEPOINT] identifier;
RELEASE SAVEPOINT indentifier;

默认启用自动提交功能

SHOW GLOBAL VARIABLES autocommit;
autocommit ON
#启动事务
START TRANSACITON;
#回滚事务
ROLLBACK;
#关闭自动提交后, 使用COMMIT 进行提交
COMMIT;

建议显示请求和提交事物, 不要使用自动提交功能

关闭自动提交功能, 在配置文件中写入
autocommit=OFF
重启服务即成功

事务的隔离级别 :
  1. READ UNCOMMITTED ( 读未提交 ) –> 脏读
  2. READ COMMITTED ( 读提交 ) –> 不可重复读(同一数据两次读取结果不同)
  3. REPEATABLE READ ( 可重复读 ) –> 幻读(两次读取内容, 新数据无法显示)[MySQL默认]
  4. SERIABLIZABLE ( 可串行化 ) –> 性能不佳

定义的变量为 : tx_isolation

查看innodb 存储引擎基本状态信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值