我想将数据从一个数据库合并到另一个数据库。所以我创建转储,mysqldump然后将其导入另一个数据库(具有相同的表结构)。在这种情况下,我没有任何问题(例如重复条目或其他问题)。
但是为了测试目的我做了一些合并,稍后我会做最终合并。所以,我想执行几次合并(数据可能会更改)。请注意,我的表中的行永远不会删除,只能插入或更新。
我可以使用 ON DUPLICATE 选项创建 mysqldump 吗?或者我可以合并插入新数据并更新修改数据的转储?
当然,我可以ON DUPLICATE手动插入转储,但我想自动化合并过程。
我有一个 MySQL 数据库,我的一些查询变得很慢。查询时间不稳定。大多数查询都很快,但其中一些(可能是读取和返回的数据较少)需要很长时间。
我知道最佳实践是添加索引或重构代码,但我已经添加了索引并且我不想重构代码(至少当我有其他变体时)。
我有 8 Gb 空闲内存,CPU 在峰值时仅加载到 25%。所以我想使用我所有的资源。
我尝试调整 MySQL 配置,但我没有这种调整的经验,所以我提高了生产力并没有我想要的那么多。下面是一个例子:
# Query_time: 3.019647 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 504
SET timestamp=1313380874;
SELECT COUNT(inboxentities.id) FROM inboxentities WHERE (active=true)AND(deleted=false)AND((to_ = '44219ca4-a657-4909-b30d-a7ba0ed8e4b0'))AND(notification=true);
Run Code Online (Sandbox Code Playgroud)
PSinboxentities有 500.000 条记录。我有 index1 (idx_to) :to_和 index2 (idx_complex): deleted, notification, active,to_
这是解释选择的结果:
+----+-------------+---------------+------+------------------------------------------------+--------+---------+-------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------------+------+------------------------------------------------+--------+---------+-------+------+-------------+
| 1 | SIMPLE | …Run Code Online (Sandbox Code Playgroud)