假设我有两个场景,数据量相同,例如一个表有500行。首先,我使用一个查询来查询已分区的mysql表,然后让其余的逻辑到mysql引擎来得到我的结果。
在第二种情况下,我创建了5个表,最多有100行。然后,我通过编程遍历这些表,直到找到记录,如下所示(伪代码):
fetchedData = query table1
if fetchedData == null
fetchedData = query table2
if fetchedData == null
...
fetchedData = query table5
这里我看到的主要缺点是,我可能会查询数据库5次而不是1次,这取决于记录存储在哪个表中。但是由于查询更小,更有针对性,它们应该能给我更快的响应时间。或者我应该把它留给mysql分区吗?在第二种情况下,我们不考虑可维护性。
1条答案
按热度按时间s6fujrry1#
都不是。
500行是微不足道的。即使mysql可以并行处理,也不会有任何帮助。
使用一个合适的索引——通常是非常有用的。
您的特定伪代码并不比使用
LIMIT 1
最后停止查询,然后再扫描所有内容。所以,我再说一遍,“两种类型的分区都不会有任何帮助”。