当前位置:网站首页>金仓数据库 MySQL 至 KingbaseES 迁移最佳实践(2. 概述)
金仓数据库 MySQL 至 KingbaseES 迁移最佳实践(2. 概述)
2022-08-01 16:29:00 【沉舟侧畔千帆过_】
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 高可用指南:详细描述了系统在高可用方面的支持。
边栏推荐
- 11 Publish a series as soon as it is released
- HashCode technology insider interview must ask
- 软件测试谈薪技巧:同为测试人员,为什么有人5K,有人 20K?
- 使用Canvas 实现手机端签名
- 等变图神经网络在药物研发中大放异彩
- 5年测试,只会功能要求17K,功能测试都敢要求这么高薪资了?
- 1个月写900多条用例,2线城市年薪33W+的测试经理能有多卷?
- 探讨if...else的替代方案
- OpenCV-resize函数「建议收藏」
- How to Efficiently Develop Jmix Extension Components
猜你喜欢
珠海市生物安全P3实验室主体结构封顶
京东软件测试面试题,仅30题就已经拯救了50%的人
22年镜头“卷”史,智能手机之战卷进死胡同
Use Canvas to implement mobile phone signature
How to Efficiently Develop Jmix Extension Components
MySQL's maximum recommended number of rows is 2000w, is it reliable?
AI艺术‘美丑’不可控?试试 AI 美学评分器~
如何防止重复下单?
Vulnhub靶机:HARRYPOTTER_ NAGINI
网站备案后没有找到站点 您没有将此域名或IP绑定到对应站点! 配置文件未生效!
随机推荐
11 一发布就发布一系列系列
面试必问的HashCode技术内幕
intentservice使用(Intention)
阿里官方 Redis 开发规范
首席工程师究竟是怎样的存在?
TiFlash 存储层概览
指针进阶(二)
DOM系列之classList属性
MySQL INTERVAL Keyword Guidelines
Description of common operations and help projects about DevExpress in C#
【建议收藏】技术面必考题:多线程、多进程
完全背包问题求组合数和排列数
AI艺术‘美丑’不可控?试试 AI 美学评分器~
Use Canvas to implement mobile phone signature
PHP security flaws: session hijacking, cross-site scripting, SQL injection and how to fix them
聊下自己转型测试开发的历程
8年软件测试工程师感悟 —— 写给还在迷茫中的朋友
Path helper class for C#
MySQL加锁案例分析
金仓数据库KingbaseES安全指南--6.3. Kerberos身份验证