zoukankan      html  css  js  c++  java
  • 从其他数据库迁移到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深度结合

    特别适合互联网应用场景

    入门学习成本低

    社区庞大,生态完善

    人才储备充足

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

  • 相关阅读:
    机械设计手册
    如何在PADS的封装中做非金属化孔
    【Protle99SE】PCB中各层的含义【小汇】
    Stm32时钟分析
    头文件为什么要加#ifndef #define #endif
    android adb常用指令
    安装 SQLManagementStudio_x86_CHS(SQL Server Management Studio) 老提示重启的解决办法
    SQL 2008下载地址以及全新安装详细过程
    【原创】pads2007 Layout 电气连接性检查过孔显示错误
    十款最具发展前景机器人
  • 原文地址:https://www.cnblogs.com/allenhu320/p/11549920.html
Copyright © 2011-2022 走看看