从其他数据库迁移到MySQL

Oracle,SQL Server迁移到MySQL

一些变化

不再使用存储过程、视图、定时作业

表结构变更,如采用自增id做主键,以及其他语法变更

业务SQL改造,不使用窗口函数、CTE等功能

制定MySQL业务开发规范

数据迁移

MySQL Workbench、Navicat

OGG

ODBC/JDBC

dataX

otter + canal

全量一次复制 + 增量变化应用

数据校验

yugong (for Oracle)

理解MySQL特点

单进程,多线程

在超高并发情况下,对多核CPU的利用不足

不使用MySQL5.1以前版本,多核CPU利用差

MySQL新版本高并发可以很好利用多核CPU

每个连接只能用到一个逻辑CPU

每个Query/SQL只能用到一个逻辑CPU

使用/优化建议

使用新版本,抛弃旧版本

用高主频,多核CPU

不跑复杂SQL

事务及早结束

InnoDB buffer pool (简称IBP)是最大的内存单元

innodb_buffer_pool_free,innodb_buffer_pool_wait_free,innodb_buffer_pool_pages_dirty

MySQL5.7起可在线调整IBP

每个session(连接/会话)分配sort/join/read buffer/tmp table

使用/优化建议

IBP一般设置物理内存的50%~70%

加大物理内存,减少物理I/O,提高TPS

session级buffer按需分配,因此适当就好,无需过大

所谓的高速查询缓存反倒是影响并发性能的鸡肋,直接禁用

随着MyISAM逐步被抛弃,key buffer只需设置非常小

磁盘I/O是数据库应用场景最大的瓶颈

OLTP业务场景中,绝大多数是随机I/O读写

UNDO log以顺序写、随机读为主

REDO log、binlog、relay log以顺序写、顺序读为主

使用/优化建议

加大物理内存,减少物理I/O

采用高速磁盘设备

适当创建索引,减少随机读

不存图片、文件、长文本等大对象数据

不跑复杂SQL,表达式运算、函数运算等

不跑长事务

不跑全文检索

不支持bitmap索引

不支持hash join

MySQL8.0之前不支持统计直方图

开源、免费、跨平台

和Linux深度结合

特别适合互联网应用场景

入门学习成本低

社区庞大,生态完善

人才储备充足

新版本新功能越来越赞,值得信赖

从其他数据库迁移到MySQL及MySQL特点的更多相关文章

  1. 数据库迁移后报错提示MySQL Error:Can''t find file errno: 13 - Permission denied的解决方法

    用户MYSQL数据库迁移后,遇到报错MySQL Error:Can't find file (errno: 13 - Permission denied)使用以下指令重新设置所有者和权限,依然不能解决 ...

  2. 项目那几步走:先配置setting路径文件、创建数据库、执行数据库迁移命令、配置mysql数据库信息、注册app、注释中间件、pymysql替换mysqldb-配置urls路由-继续视图函数-然后HTML页面展示-HTML里面导入css文件、models配置数据库表、

    django使用mysql数据库: 首先cmd创建库 1.settings: """Django settings for day42 project. Generate ...

  3. 用kettle实现数据库迁移之oracle到mysql

    项目完成后,需要把历史oracle 的数据库转移mysql 用kettle 转换数据. 步骤: 1.打开spoon.bat,文件-->新建-->转换,点击“主对象树”,DB连接右键“新建” ...

  4. [Windows Server 2008] MySQL单数据库迁移方法

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:MySQL ...

  5. DJango配置mysql数据库以及数据库迁移

    DJango配置mysql数据库以及数据库迁移 一.Django 配置MySQL数据库 在settings.py中配置 import pymysql # 配置MySQL pymysql.install ...

  6. ubuntu系统lamp环境搭建、数据库迁移、设置数据库外部访问

    sudo passwd root设置两次密码su输入设置的密码exit (退出root帐号) 1.sudo apt-get update 2.sudo apt-get install apache2 ...

  7. MySQL数据库迁移(转)

    MySQL数据库迁移(数据文件直接迁移) 在今年10月下旬的时候,公司的服务器需要迁移,其中涉及到了MySQL数据库迁移.查看了一下MySQL数据文件的大小,接近60G的大小(实际数据并没用那么多). ...

  8. 数据库迁移之从oracle 到 MySQL

    方式一: 手动方式导入导出 手动的方式导入, 就是操作步骤会比较繁琐一些. 对Table 的结构和数据: 1. 使用 SQL Developer 把 oracle 的 table 的schema 和 ...

  9. [saiku] 将saiku自带的H2嵌入式数据库迁移到本地mysql数据库

    saiku数据库的表和用户默认创建是在启动项目的时候,通过初始化 saiku-beans.xml 中的 h2database 这个 bean 执行org.saiku.service.Database类 ...

  10. MySQL数据库迁移详细步骤(转)

    ========================================================================================== 一.背景简介 == ...

随机推荐

  1. ubuntu之路——day8.1 深度学习优化算法之mini-batch梯度下降法

    所谓Mini-batch梯度下降法就是划分训练集和测试集为等分的数个子集,比如原来有500W个样本,将其划分为5000个baby batch,每个子集中有1000个样本,然后每次对一个mini-bat ...

  2. 记Oracle中regexp_substr的一次调优(速度提高95.5%)

    项目中需要做一个船舶代理费的功能,针对代理的船进行收费,那么该功能的第一步便是选择进行代理费用信息的录入,在进行船舶选择的时候,发现加载相关船舶信息十分的慢,其主要在sql语句的执行,因为测试的时候数 ...

  3. python反射hasattr getattr setattr delattr

    反射 : 是用字符串类型的名字 去操作 变量 相比于用eval('print(name)') 留有 安全隐患 反射 就没有安全问题 hasattr 语法: hasattr(object, name)o ...

  4. 应急响应系列之OA被入侵挖矿分析报告

    一 基本情况 1.1  简要 此事件是去年应急处置时完成的报告,距今有半年时间了.一直存在电脑里,最近准备完善应急响应中遇到的各类安全事件,这篇文章作为这一系列的开端. 对于 Linux 安全检查,个 ...

  5. 谈谈你对This对象的理解?

    1.this总是指向函数的直接调用者(而非间接调用者):2.如果有new关键字,this指向new出来的那个对象:3.在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent ...

  6. 文献阅读 | Benchmarking single cell RNA-sequencing analysis pipelines using mixture control experiments

    资源: sci-hub paper CellBench package - github CellBench_data - code for the paper 现在单细胞领域的突出问题就是工具过多, ...

  7. 关于PHP中token的生成的解析

    背景 很多时候我们需要用 token 来作为一些标识, 比如: 一个用户登录后的认证标识. 实现方式 md5 的方式: $v = 1; // 自己定义的 需要hash 的value 值 $key = ...

  8. hugepage设置相关总结

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/shaoyunzhe/article/de ...

  9. sqoop import mysql to hive table:GC overhead limit exceeded

    1. Scenario description when I use sqoop to import mysql table into hive, I got the following error: ...

  10. Day1作业1:登陆接口(加入日志、注册功能)

    流程图如下: 最先考虑使用python中的list,以能取到user_list中的用户信息,但中途发现没有比较好的方法截取取密码,还是新手的缘故,最终选择了使用dict,以方便截取用户名以及相应的密码 ...