首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MySql来获得高速性能?

问如何使用MySql来获得高速性能?
EN

Stack Overflow用户
提问于 2015-05-28 04:56:16
回答 1查看 172关注 0票数 0

我目前正在开发MySql数据库,我们在该数据库上处理大量数据。很多时候,我们从数据库中匹配和删除重复或不合适的数据,但是执行需要很长的时间(有时是2或3天)。

我想知道,是否有任何方法可以提高查询执行的速度和快速获得结果。

请建议一下。

例如:

有两个表,第一个表有100万条记录,第二个表也有100万条记录。

如果匹配,我们将匹配两个表,并从第二个表中删除数据。

就这样。

EN

回答 1

Stack Overflow用户

发布于 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语句的信息。

编辑

添加了删除同时比较两个表的示例之后:

我仍然建议使用“解释”,并告诉我们是否使用索引。

但无论如何,与其直接“删除.”您可以插入临时表,然后重命名它。就像这样:

代码语言:javascript
复制
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;

尽管如此,我不喜欢这样的解决方案,我可能会首先重构您的架构。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30497542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档