【发布时间】:2021-01-29 16:25:51
【问题描述】:
到目前为止,我们有一个带有 2 个数据库的服务器和一个可以访问其中任何一个的 mysql 用户。例如
`select * from magento.maintable, erp.maintable`
现在我们的 erp 非常慢,我们想在另一台服务器上分离我们的数据库,但是我们有数百(几乎一千)个 SQL 查询可以在同一个查询中访问两个数据库,例如
`insert into magento.table
select * from erp.maintable`
或
select * from erp.maintable inner join magento.table...
越来越多
如何在不更改这些查询的情况下使所有内容都正常工作?但是数据库在不同的服务器上
为了访问数据库,我为每个数据库创建了一个类,并通过一个对象进行查询、插入、更新和删除,就像这样
` public function exec($query, $result_array = true)
{
$this->data->connect();
$result = $this->data->query($query, $result_array);
$this->data->disconnect();
return $result;
}`
欢迎所有帮助,重点是找到一种最佳方法来执行此操作,而不必手动更改其他程序员进行的 1000 条 sql 查询
【问题讨论】:
-
附加信息请求 - 来自您的 ERP 服务器。 RAM 大小、# 核心、MySQL 主机服务器上的任何 SSD 或 NVME 设备?在 pastebin.com 上发布并分享链接。从您的 SSH 登录根目录中,文本结果为:B) SHOW GLOBAL STATUS;至少 24 小时正常运行时间后 C) 显示全局变量; D) 显示完整的处理程序;和 可选的非常有用的信息,如果可用,包括 - htop 或 top 用于大多数活动应用程序,ulimit -a 用于 Linux/Unix 限制列表,iostat -xm 5 3 用于按设备和核心/cpu 计数的 IOPS,用于服务器工作负载调整分析提供建议。
-
谢谢威尔逊 我有一个疑问,代码创建了一个 nw conecction foreach 脚本,也许这些脚本每天早上运行数百次并且连接不会关闭,有没有办法自动做到这一点?而不必通过脚本破坏mysql对象这是创建的对象 $sql = new mysqli('localhost', 'user_db', pass_db') 或 die(mysql_error());
-
牧师,您可以灵活地与我进行Skype TALK吗?我的 Skype ID 是 wlhauck@aol.com,今天我将在接下来的两个小时有空。
-
如果您有时间和灵活性,可以使用。