从其他数据库迁移到MySQL及MySQL特点
从其他数据库迁移到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特点的更多相关文章
- 数据库迁移后报错提示MySQL Error:Can''t find file errno: 13 - Permission denied的解决方法
用户MYSQL数据库迁移后,遇到报错MySQL Error:Can't find file (errno: 13 - Permission denied)使用以下指令重新设置所有者和权限,依然不能解决 ...
- 项目那几步走:先配置setting路径文件、创建数据库、执行数据库迁移命令、配置mysql数据库信息、注册app、注释中间件、pymysql替换mysqldb-配置urls路由-继续视图函数-然后HTML页面展示-HTML里面导入css文件、models配置数据库表、
django使用mysql数据库: 首先cmd创建库 1.settings: """Django settings for day42 project. Generate ...
- 用kettle实现数据库迁移之oracle到mysql
项目完成后,需要把历史oracle 的数据库转移mysql 用kettle 转换数据. 步骤: 1.打开spoon.bat,文件-->新建-->转换,点击“主对象树”,DB连接右键“新建” ...
- [Windows Server 2008] MySQL单数据库迁移方法
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:MySQL ...
- DJango配置mysql数据库以及数据库迁移
DJango配置mysql数据库以及数据库迁移 一.Django 配置MySQL数据库 在settings.py中配置 import pymysql # 配置MySQL pymysql.install ...
- ubuntu系统lamp环境搭建、数据库迁移、设置数据库外部访问
sudo passwd root设置两次密码su输入设置的密码exit (退出root帐号) 1.sudo apt-get update 2.sudo apt-get install apache2 ...
- MySQL数据库迁移(转)
MySQL数据库迁移(数据文件直接迁移) 在今年10月下旬的时候,公司的服务器需要迁移,其中涉及到了MySQL数据库迁移.查看了一下MySQL数据文件的大小,接近60G的大小(实际数据并没用那么多). ...
- 数据库迁移之从oracle 到 MySQL
方式一: 手动方式导入导出 手动的方式导入, 就是操作步骤会比较繁琐一些. 对Table 的结构和数据: 1. 使用 SQL Developer 把 oracle 的 table 的schema 和 ...
- [saiku] 将saiku自带的H2嵌入式数据库迁移到本地mysql数据库
saiku数据库的表和用户默认创建是在启动项目的时候,通过初始化 saiku-beans.xml 中的 h2database 这个 bean 执行org.saiku.service.Database类 ...
- MySQL数据库迁移详细步骤(转)
========================================================================================== 一.背景简介 == ...
随机推荐
- sql server 自增列,值突然增大1000的情况
sql server 自增列,值突然增大1000的情况 解决方法: 1 打开配置管理器2左面点击sql服务3右面 右键点击SQL Server(MSSQLSERVER) 4点击 启动参数5 在参数 ...
- laravel删除文件
laravel删除文件 一.总结 一句话总结: 1.注意disk:disk决定路径 2.删单个文件的时候就用删单个文件的方式,别用删多个文件的方式(也就是参数别数组) public function ...
- 判断一个数组的长度用 Length 还是 SizeOf ?
最近发现一些代码, 甚至有一些专家代码, 在遍历数组时所用的数组长度竟然是 SizeOf(arr); 这不合适! 如果是一维数组.且元素大小是一个字节, 这样用看不出错误, 譬如: var arr ...
- ActiveMQ相关API
一.Producer 1,发送消息 MessageProducer send(Message message)发送消息到默认目的地,就是创建Producer时指定的目的地. send(Destinat ...
- python 设计模式之装饰器模式 Decorator Pattern
#写在前面 已经有一个礼拜多没写博客了,因为沉醉在了<妙味>这部小说里,里面讲的是一个厨师苏秒的故事.现实中大部分人不会有她的天分.我喜欢她的性格:总是想着去解决问题,好像从来没有怨天尤人 ...
- Flutter -------- 解析JSON数据
SON序列化方法: 手动序列化和反序列化通过代码生成自动序列化和反序列化 手动JSON序列化是指使使用dart:convert中内置的JSON解码器.它将原始JSON字符串传递给JSON.decode ...
- 文章后面的QA或FAQ
QA:question&answer FAQ: Frequently Asked Questions的缩写,中文意思就是“经常问到的问题”
- osg gdal加载tif数据文件
osg加载.tif地形数据文件 #ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include <iostream> ...
- [译]如何在GitHub仓库创建一个标签tag, 并推送到远程分支?
问: 我在GitHub上有一个仓库,我需要给他打个tag.我在shell打了tag,但是在Github上没有显示出来.我还要做其他什么么? 我在shell中使用的命令是: git tag 2.0 当我 ...
- 报错:The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.
报错背景: CDH中集成hive插件,启动报错. 报错现象: [main]: Metastore Thrift Server threw an exception... javax.jdo.JDOFa ...