DML : DELETE INSERT INTO UPDATE 与查询操作有关
INSERT INTO tb_name (col1,col2,...) VALUES (val1,val2,...)[,(val1,val2,...)] 字符型 :单引号 数值型 :不需要引号 日期时间型 空值 :NULL REPLACE INTO 替换 用法相同
DELETE : DELETE FROM tb_name WHERE condition; truncate tb_name 清空表并重置AUTOINCREMEN计数器;
UPDATE tb_name SET col1=...,col2=... WHERE
MYSQL 机制 : 连接管理器: 接受请求 创建线程 认证用户 建立安全连接
并发控制 : mbox : MDA 多版本并发控制 :MVCC 操作某个时间的快照
锁 : 读锁 :共享锁 写锁 :独占锁 LOCK TABLES tb_name lock_type(read|write); UNLOCK TABLES 解除所有表的锁
锁粒度:从大到小 ,MySQL服务器仅支持表级锁,行锁需要由存储引擎完成 表锁 页锁 行锁
事务 : RDBMS :ACID(原子性、一致性、隔离性、持久性) 事务日志 : 重做日志 redo log 撤消日志 undo log
隔离级别 : READ-UNCOMMITRED 读未提交 READ-COMMITTED 读提交 REPATABLE READ 可重读 SERIABLEZABLE 可串行
多事务同时执行 :彼此之间互不影响的方式进行并行; 事务之间交互 通过数据集
ACID
Automicity 原子性,事务所引起的数据库操作,要么都完成,要么都不执行;
Consistency 一致性,执行前后数据库整体状态没有改变(隔离)
Isolation 隔离性 事务调度,事务之间影响最小 MVCC多版本并发控制
Durability 持久性,一旦事务成功完成,系统必须保证任何故障都不会引起事务表示出不一致性;
1、事务提交之前就已经写出数据至持久性存储;
2、结合事务日志完成;
事务日志产生顺序IO
数据文件产生随机IO
事务的状态 :
活动的 :active
部分提交的 :最后一条语句执行后
失败的
中止的
提交的
状态转换过程 :
事务 :允许并发执行 1、提高吞吐量和资源利用率 2、减少等待时间 事务调度 : 可恢复调度 : 无级联调度 :
SQL ,ODBC
START TANSACTION : 启动 COMMIT :提交 ROLLBACK :回滚
并发控制依赖的技术手段 : 锁 时间戳 多版本和快照隔离
锁饿死 死锁 如果没有明确启动事务 : autocommit :能实现自动提交,每一个操作都直接提交; 建议,明确使用事务,并且关闭自动提交 保存点 :SAVEPOINT SID 回滚至保存点 :ROLLBACK TO SID