我目前正在开发MySql数据库,我们在该数据库上处理大量数据。很多时候,我们从数据库中匹配和删除重复或不合适的数据,但是执行需要很长的时间(有时是2或3天)。
我想知道,是否有任何方法可以提高查询执行的速度和快速获得结果。
请建议一下。
例如:
有两个表,第一个表有100万条记录,第二个表也有100万条记录。
如果匹配,我们将匹配两个表,并从第二个表中删除数据。
就这样。
发布于 2015-05-28 05:07:22
这是一个“如何更快地删除”的巨大问题。
在没有任何具体描述的情况下,我可以建议您在表中使用独一无二来防止重复。
如果您想要一个关于其他DB的建议,那么也许您可以切换到某种类型的非sql数据库,比如Redis,它非常快,但是您需要了解如何使用它,在哪里使用它来获得最大的利润。
您要删除的表上有索引吗?
你用过任何切分法吗?
你的桌子上用的是什么引擎?
您使用的Mysql版本是什么?
您尝试过"EXPLAINing“删除查询吗?
截至MySQL 5.6.3,EXPLAIN提供了有关SELECT、DELETE、INSERT、REPLACE和UPDATE语句的信息。在MySQL 5.6.3之前,EXPLAIN只提供有关SELECT语句的信息。
编辑
添加了删除同时比较两个表的示例之后:
我仍然建议使用“解释”,并告诉我们是否使用索引。
但无论如何,与其直接“删除.”您可以插入临时表,然后重命名它。就像这样:
CREATE TABLE tmp LIKE yourtable;
INSERT INTO tmp SELECT <your required data from 2 tables>;
RENAME yourtable TO deleteme, tmp TO yourtable;
DROP TABLE deleteme;尽管如此,我不喜欢这样的解决方案,我可能会首先重构您的架构。
https://stackoverflow.com/questions/30497542
复制相似问题