首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:分表后的性能测试

MySQL:分表后的性能测试
EN

Stack Overflow用户
提问于 2013-02-05 01:10:59
回答 2查看 190关注 0票数 0

我做了一个测试,看看划分一个索引的大表是否会提高性能。

原表: 20000行。子表: 4x5000行。

主表被分成4个表,所有的表都被索引,在测试中,每个sql查询在一个循环中执行了10000次,以衡量更准确的查询次数。

当我搜索表中的索引列时,我发现原始(20000行)表和新(5,000行)表在性能和查询时间上没有区别。

我在没有索引的情况下尝试了相同的测试,删除了所有表的索引,性能差异很明显,在子表中搜索比在大表中搜索快6倍。但使用索引时,性能是相同的。

那么,您认为将我的表划分为更小的表是浪费时间吗?

注意: 20000大小仅用于测试,我的真实数据将是100M或更大。

EN

回答 2

Stack Overflow用户

发布于 2013-02-05 01:41:01

是的,这是浪费时间。数据库可以轻松地处理数百万行,而20,000行相对较小。正如您所注意到的,索引可以快速查找数据。在大多数情况下,数据的大小不会明显影响查找的速度。如果大小的差异是100倍或1000倍,查询可能会多花几毫秒,但您正在处理的规模不会产生真正的差异。

票数 0
EN

Stack Overflow用户

发布于 2013-02-05 06:23:59

您实际上所做的就是重新定义了Partitioning of Tables。我不会使用您自己的子表方案,而专注于使用分区表将自动意味着在内部使用子表,如果您适当地制定您的SQL,如果不需要的话,子表将自动从操作中排除。

但是,分区的所有管理工作都将在服务器上进行,这样您的客户端代码就可以保持简单,而您仍然只需处理单个表。

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

https://stackoverflow.com/questions/14691771

复制
相关文章

相似问题

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