开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情
@[toc]
第四章:OB Server的SQL引擎和存储引擎
4.1 SQL引擎
4.1.9 基本操作:事务介绍
• 数据库事务(DatabaseTransaction)是指作为单个逻辑工作单元执行的一系列操作。事务处理可以用来维护数据库的完整性,保证成批的SQL操作全部执行或全部不执行 • 通过BEGIN TRANSACTION,或BEGIN和BEGIN WORK(被作为STARTTRANSACTION的别名受到支持)语句显示开始,以COMMIT(提交)或ROLLBACK(回滚)语句显示结束 事务语法如下:
START TRANSACTION | [BEGIN
[WORK]]
COMMIT [WORK] ;
ROLLBACK [WORK];
4.1.10 基本操作:提交事务
在提交事务(COMMIT)之前:
• 修改只对当前用户可见,对其他用户来说是不可见的
• 修改不是最终结果,可以通过ROLLBACK语句撤销修改
在提交事务(COMMIT)之后:
• 修改对其他用户都是可见的
• 修改是最终结果,不能通过ROLLBACK语句回滚修改
举例:
4.1.11 基本操作:回滚事务
回滚事务:回滚(ROLLBACK)事务操作,表示事务已经结束,回滚所有事务操作,并释放事务锁。
举例:
4.1.12 OceanBase官网查询详细的开发者指南和SQL参考
OceanBase官网包含MySQL模式和Oracle模式的开发者文档和SQL参考文档 开发者指南(MySQL模式) www.oceanbase.com/docs/oceanb… SQL参考(MySQL模式) www.oceanbase.com/docs/oceanb… 开发者指南(Oracle模式) www.oceanbase.com/docs/oceanb… SQL参考(Oracle模式) www.oceanbase.com/docs/oceanb…
4.1.13 查看SQL的执行计划-EXPLAIN命令
• 语法:explain [extended] \G • 使用非常方便,无需创建单独系统表,可直接获取语句的执行计划 • extended选项会产生更多详细内容,排查执行计划问题时建议指定 • 命令的输出格式和Oracle数据库的EXPLAIN工具比较接近,可读性好 • 只是获取执行计划,并不真正执行
EXPLAIN 使用案例:单分区表
EXPLAIN 使用案例:多分区并行查询
EXPLAIN 使用案例:分区表主键查询