• 金仓数据库 MySQL 至 KingbaseES 迁移最佳实践(2. 概述)


    2. 概述

    本章节包含以下内容:

    • MySQL 兼容特性概览

    • 相关技术资源

    2.1. MySQL 兼容特性概览

    通常,异构数据库移植的工作量繁重。这些工作量主要来源于:在数据类型、SQL 语言、PL/SQL 语言、甚至客户端应用编程接口等诸多方面对两个数据库所进行的、大量的语法或功能的对齐处理。

    同样的,从 MySQL 向 KingbasES 移植的情况也如此。为降低移植工作量,KingbaseES 在其内部实现了部分的 MySQL 兼容特性。这些特性从语法或功能上对 MySQL 提供了原生支持。因此,在移植过程中,MySQL 程序只需很少甚至不做任何改动就能在 KingbaseES 环境中运行。

    此外,对未提供原生支持的 MySQL 功能,KingbaseES 也给出了相应的移植建议。

    2.1.1. 数据类型

    数据类型是描述数据库系统底层信息资源模式的常用手段。通常,两个数据库系统数据类型的兼容好坏直接影响移植的难易程度。KingbaseES 对 MySQL 的基本数据类型如数值类型(整型、浮点型、定点数类型)、文本字符串类型(CHAR、VARCHAR、TINYTEXT、MEDIUMTEXT、LONGTEXT)、位类型、日期时间类型 (YEAR、TIME、DATE、DATETIME、TIMESTAMP)、枚举类型、集合类型、二进制类型(BINARY、VARBINARY、BLOB)、JOSN 类型(JOSN 对象、JSON 数组)可以原生支持,或者通过转换进行支持。

    2.1.2. SQL 语句

    在 KingbasES 中,对大多数常用的 MySQL 特有 SQL 语句均提供了原生支持。这项措施使得 MySQL 应用程序在 KingbaseES 系统中通常只需很少的代码变动就可正常运行。

    KingbaseES 主要兼容如下 MySQL 的 SQL 语句:

    • insert ... set 语句

    • select...limit 语句

    • replace into 语句

    • on duplicate key update 语句

    2.1.3. PL/SQL 语法

    KingbaseES 支持如下 MySQL 过程化语言的常用语法:

    • 赋值语句

    • IF 语句

    • CASE 语句

    • 循环语句

    • EXECUTE 语句

    • 动态 SQL

    2.1.4. PL/SQL 对象

    KingbaseES 支持如下 MySQL 过程化语言对象:

    • 内置标量函数

    • 触发器

    • 匿名块

    • 存储过程

    • 函数

    2.1.5. 客户端 SQL 交互工具

    在实际应用中,通常客户 DDL 脚本和报表是通过 SQL 交互工具移植的。针对这种情况,KingbaseES 提供了如下 SQL 交互工具:

    • ksql:命令行的 SQL 交互工具,类似 MySQL 的 命令行。

    • Kstudio:图形化的 SQL 交互工具,类似 MySQL 的图形化工具。

    通过上述工具,用户可连接数据库服务器,运行数据库实用程序,发送 SQL 语句,运行 SQL 脚本,或运行 KingbaseES 数据库管理命令实施数据库管理等。

    2.2. 相关技术资源

    本指南重点从语句兼容特性、迁移工具、迁移场景和应用程序移植等几方面描述 MySQL 移植的关键技术和实现方式。在每项技术和实现方式的描述上,本指南只提供有限的内容介绍,并未提供全面的细节说明。所以,

    用户若需了解某些技术的实现细节还请参照相关的技术资料,这些资料诸如:

    • KingbaseES 数据库管理员指南:详尽和全方位地介绍如何高效管理 KingbaseES 数据库系统。其中,这些管理诸如用户管理、存储管理、模式对象管理等。

    • KingbaseES 开发指南:提供了 JDBC、ODBC、DCI 和 ESQL 等应用编程接口的详细使用说明。

    • KingbaseES 高可用指南:详细描述了系统在高可用方面的支持。

  • 相关阅读:
    asp毕业设计——基于asp+sqlserver的WEB社区论坛设计与实现(毕业论文+程序源码)——社区论坛
    3.5 Keepalived双主热备
    【CSDN|每日一练】小艺的英文名
    使用强大的DBPack处理分布式事务(PHP使用教程)
    群友讨论:Pandas与MySQL求解经销商会话时间相关的问题
    【财务系统】报告如何转换下载为word?这个方法值得借鉴
    刷爆力扣之数组形式的整数加法
    QT 气泡消息绘制
    Bootstrap实现个人blog项目(1+X Web前端开发中级 例题)——初稿
    蚁创互联告诉您何为品牌霸屏?“品牌霸屏”是什么意思呢?
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126095822