Oracle与MySQL的差异和对比:配套hands-on参考脚本。

方便客户针对培训课件内容进行动手实践,加强理解。

---------------------------------
-- 主题:Oracle与MySQL的差异和对比
-- 一、MySQL的基础特性
-- 二、重要特性差异对比
-- 三、性能对比和优化技巧
--------------------------------

Hands-on场景环境准备@MySQL实例

--------------------------------
-- Hands-on场景环境准备@MySQL实例
--------------------------------
--Create db & user
CREATE DATABASE demodb;
CREATE USER 'alfred'@'localhost' IDENTIFIED BY 'alfred123';
GRANT ALL PRIVILEGES ON demodb.* TO 'alfred'@'localhost';
GRANT SELECT ON information_schema.* TO 'alfred'@'localhost';
FLUSH PRIVILEGES; --Create tables
mysql -ualfred -palfred123 -Ddemodb CREATE TABLE t (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
); Insert into t(name) values ('Alfred'),('Mcdull'); commit; select * from t;

Hands-on场景1:模拟MDL等待

--------------------------------
-- Hands-on场景1:模拟MDL等待
--------------------------------
--T1@ session1:TRX
begin;
select id from t; --T2@ session2:DDL【被阻塞】
alter table t add age int; --T3@ session3:Select【被阻塞】
select id from t; --T4@ session1:TRX
commit; --Check process & trx info
show processlist;
select * from information_schema.innodb_trx\G

Hands-on场景2:模拟死锁

--------------------------------
-- Hands-on场景2:模拟死锁
--------------------------------
--T1@ session1
begin;
update t set age=20 where id=1; --T2@ session2
begin;
update t set age=18 where id=2; --T3@ session1【被阻塞】
update t set age=18 where id=2; --T4@ session2【数据库监测到死锁,事务回滚】
update t set age=20 where id=1;

Hands-on场景3:DB读取最小单位

--------------------------------
-- Hands-on场景3:DB读取最小单位
--------------------------------
--Oracle
show parameter db_block_size --MySQL
show variables like 'innodb_page_size';

Hands-on场景4:查看SQL索引使用情况

--------------------------------
-- Hands-on场景4:查看SQL索引使用情况
--------------------------------
INSERT INTO t (name, age)
SELECT
CONCAT('Name_', FLOOR(RAND() * 10000)),
FLOOR(RAND() * 100)
FROM
(SELECT 1 AS dummy UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) AS t1
CROSS JOIN (SELECT 1 AS dummy UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) AS t2
CROSS JOIN (SELECT 1 AS dummy UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) AS t3
CROSS JOIN (SELECT 1 AS dummy UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) AS t4
CROSS JOIN (SELECT 1 AS dummy UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) AS t5
CROSS JOIN (SELECT 1 AS dummy UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) AS t6
CROSS JOIN (SELECT 1 AS dummy UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) AS t7
LIMIT 10000; explain select * from t where name='Alfred'; CREATE INDEX idx_name_age ON t(name, age);
CREATE INDEX idx_age ON t(age);
CREATE INDEX idx_name ON t(name); explain select * from t where name='Alfred'; DROP INDEX idx_name_age ON t; explain select * from t where name='Alfred';

Hands-on场景5:MySQL默认存储引擎、binlog、redolog信息确认

--------------------------------------------------------
-- Hands-on场景5:MySQL默认存储引擎、binlog、redolog信息确认
--------------------------------------------------------
show engines;
SELECT @@default_storage_engine; ps -ef|grep mysql
cd [--datadir]
ls -lrth mysql-bin.*
ls -lrth ib_logfile* SHOW VARIABLES LIKE 'innodb_log_file_size';
SHOW VARIABLES LIKE 'innodb_log_files_in_group';

Hands-on场景6:查看MySQL业务表的详细状态信息

------------------------------------------
-- Hands-on场景6:查看MySQL业务表的详细状态信息
------------------------------------------
show table status like 't'\G
show index from t;

Oracle与MySQL的差异和对比的更多相关文章

  1. Oracle与MySQL的区别对比

    本文对数据库Oracle与MySQL进行了区别对比,其中从并发性.一致性.事务.数据持久性等十三方面进行了对比. 本文摘自 51cto 一.并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源 ...

  2. oracle和mysql几点差异对比

    Oracle与mysql差异性总结 之前有个项目是用oracle数据库进行开发,需要把数据库改成mysql,遇到了一些地方需要注意的,就简单记了下来. 备注: 再把oracle转成mysql的时候,表 ...

  3. MySQL与Oracle差异函数对比

    ORACLE:select round(1.23456,4) value from dual MYSQL:select round(1.23456,4) value 2 abs(-1) abs(-1) ...

  4. Oracle和MySQL的高可用方案对比【转】

    关于Oracle和MySQL的高可用方案,其实一直想要总结了,就会分为几个系列来简单说说.通过这样的对比,会对两种数据库架构设计上的细节差异有一个基本的认识.Oracle有一套很成熟的解决方案.用我在 ...

  5. 【转】SQL Server、Oracle、MySQL和Vertica数据库常用函数对比

    SQL Server.Oracle.MySQL和Vertica数据库常用函数对比 Vertica数据库是HP公司新收购的用于BI方面的数据库. 1. 绝对值 S:select abs(-1) valu ...

  6. Oracle和MySQL的对比

    一.概述 1.1 Oracle 1.1.1 优点 开放性:Oracle 能所有主流平台上运行(包括 windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持: 可伸缩 ...

  7. Vertica的这些事(二)——SQL-Server、Oracle、MySQL和Vertica数据库常用函数对比

    SQL Server.Oracle.MySQL和Vertica数据库常用函数对比 Vertica数据库是HP公司新收购的用于BI方面的数据库. 绝对值 S:select abs(-1) value O ...

  8. oracle和mysql批量合并对比

    orm框架采用mybatis,本博客介绍一下批量合并merge用oracle和mysql来做的区别, oracle merge合并更新函数的详细介绍可以参考我以前的博客:https://blog.cs ...

  9. Oracle和Mysql获取uuid的方法对比

    场景:orm框架用mybatis,需要往数据库新增一条数据,用Oracle和mysql数据库分别需要怎么实现? mysql方法,用mysql提供的uuid函数 <insert id=" ...

  10. Mysql 和 Postgresql(PGSQL) 对比

    Mysql 和 Postgresql(PGSQL) 对比 转载自:http://www.oschina.net/question/96003_13994 PostgreSQL与MySQL比较 MySQ ...

随机推荐

  1. JS 可选链操作符?. 空值合并运算符?? 详解,更精简的安全取值与默认值设置小技巧

    壹 ❀ 引 说来也比较惭愧,可选链操作符?.在公司项目中使用特别频繁,而我在之前一直以为是类似奇技淫巧的写法,所以也没去查阅相关文档,直到在学习typescript时碰巧看到了可选链操作符与空值合并操 ...

  2. Linux查看系统版本的方法

    记录几种查看当前Linux系统的版本的方法 一.使用命令:cat /proc/version 查看 linux版本号:Linux version 5.4.0-99-generic (buildd@lg ...

  3. webgl 系列

    webgl 背景 工作所需... 目录 初识 WebGL 绘制一个点 三角形 变换矩阵和动画 渐变三角形 绘制猫 着色器语言

  4. 【Unity3D】碰撞体组件Collider

    1 前言 ​ Unity3D 中碰撞体(Collider)组件用于检测运动的物体之间是否发生碰撞,也可以作为触发器使用.产生碰撞的条件是: 2 个游戏对象都有 Collider 至少有一个游戏对象有 ...

  5. 优先队列(PriorityQueue)常用方法及简单案例

    1 前言 PriorityQueue是一种特殊的队列,满足队列的"队尾进.队头出"条件,但是每次插入或删除元素后,都对队列进行调整,使得队列始终构成最小堆(或最大堆).具体调整如下 ...

  6. Oracle驱动错误:oracle.jdbc.driver.T4CConnection.isValid(I)Z

    1.问题说明 今天在sping boot中配置多数据源,用到了oracle和postgresql两种数据库. oracle驱动版本是ojdbc14,启动以后调试程序直接报错了,就是本文题目中的错. 查 ...

  7. WinRT: 可能是 Windows 上最好用的 Native ABI 和远程调用方案

    前言 Windows 自从很久以来就有一个叫做 COM 的 Native ABI.这是一套面向对象的 ABI,在此之上 Windows 基于 COM ABI 暴露了各种各样的 API,例如 Manag ...

  8. spring事务的传播

    目录 事务的传播行为类型 注意事项 关于事务的传播,我们先确定一个场景:方法A调用方法B,方法A可能存在事务,也可能不存在事务,我们这里重点关注方法B上定义的事务传播行为,以及方法B中出现异常时,方法 ...

  9. Android加载PDF方案(pdf.js,支持缩放)

    都知道,Android本身的webview是不支持pdf加载的(比不上iOS的webview,谁让人家NB呢),因此通过连接Google的一个服务器转换成功后返回给WebView显示.但是,但是,但是 ...

  10. pymysql基本语法,sql注入攻击,python操作pymysql,数据库导入导出及恢复数据---day38

    1.pymysql基本语法 # ### python操作mysql import pymysql ''' # ### 1.基本语法 #(1) 创建连接 host user password datab ...