将数据库从移植到服务器(数据库数据转移到另外一个数据库)

lxf2023-08-07 09:40:01

因为MemSQL与MySQL完全兼容,所以将数据从MySQL迁移到MemSQL非常简单。您可以使用标准的MySQL工具进行迁移。这个例子是错误的

因为MemSQL完全兼容MySQL,所以从MySQL迁移数据到MemSQL是非常直接的。您可以使用标准的MySQL工具进行迁移。

这个例子假设你的MySQL和MemSQL都运行在同一台机器上,MySQL在端口3306,MemSQL在端口3307,并且都可以通过root帐号访问,不需要密码。

使用mysqldump工具迁移 Myqldump是MySQL客户端最常用的数据备份工具之一,它会生成一些创建表和插入数据的SQL语句,所以恢复一个数据库是最方便的。

在决定将数据迁移到MemSQL之前,有几个注意事项:

  • 大多数MySQL存储引擎使用B树存储索引,而MemSQL使用单向无锁跳表或无锁哈希表。选择正确的索引数据结构将显著提高应用程序的性能。其中,哈希表主要适用于查找键值,而跳表特别适用于复杂范围内的扫描和排序。因此,在迁移之前,您必须重新检查您的表定义,并确定您是否可以使用特定于MemSQL的优化。默认的BTREE符号将被转换成一个升序的跳转列表。如果需要双向扫描一列的范围,可以考虑同时按升序和降序增加索引。有关MemSQL的更多索引信息,请参见indexes 。因为代码生成,第一次加载数据库结构的速度比MySQL慢,因为MemSQL第一次加载表结构的时候,会生成并编译代码实现这个表的结构,包括内存分配、插入、删除、迭代的方法。一旦表被编译,MemSQL将在整个运行过程中直接使用编译后的代码。mysqldump生成的INSERT语句也会编译一次。 mysqldump会生成一些MemSQL不支持的SQL语句,比如UNIQUE_CHECKS。为了更好地支持mysqldump,MemSQL只对这些不支持的语句进行警告,并可以通过调整warn_level变量来控制错误级别。有关详细信息,请参见不支持的功能。一些CREATE TABLE语句可能完全被阻止执行。如果遇到这个问题,只能手动修改表定义SQL。 如果运行MemSQL的机器没有足够的内存来加载数据,服务器将向INSERT语句报告内存不足的错误消息。在这种情况下,只能安装更多的内存。如果将现有的memsqlbin目录复制到新机器上,MemSQL将继续使用编译后的表定义和INSERT语句。如果你使用的是MemSQL的开发版,并且超过了10G的限制,可以参考memsql.com/next了解如何升级
  • 我建议您将数据库结构定义和数据存储在单独的文件中,以便在必要时可以调整表结构。您可以使用以下命令分别导出数据库结构和数据文件:

    $ MySQL dump-h 127 . 0 . 0 . 1-u root-B[数据库名称]-no-data > schema . SQL $ MySQL dump-h 127 . 0 . 0 . 1-u root-B[数据库名称] - no-create-info > data.sql

    然后通过以下方法导入:

    $ MySQL-h 127 . 0 . 0 . 1-u root-P 3307 < schema . SQL $ MySQL-h 127 . 0 . 0 . 1-u root-P 3307 < data . SQL

    在运行这些步骤时,您可以观察memsql_tracelog(它也输出到stderr)来查看在执行过程中被忽略的不受支持的特性。导入完成后,您可以连接到MemSQL并查询结果。

    改造你的应用程序 让应用程序支持MemSQL非常简单,只需改变连接配置即可。

    注意

    如果要连接到本地MemSQL,应该使用127.0.0.1而不是localhost,而且大部分MySQL客户端都可以解析localhost,使用MySQL socket文件连接,而不用考虑端口设置。详情请见本页。

    一旦开始运行程序,就可以监控memsql_tracelog了。这里将显示一些不支持的SQL语法。MemSQL的更多SQL语句

    adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!