假设我有两个具有相同数据量的方案,例如一个包含500行的表。 首先,我使用一个查询来查询分区的MySQL表,并让其余的逻辑到MySQL引擎来获取我的结果。
在第二种情况下,我创建了5个表,最多100行。 然后我以编程方式遍历那些表,直到找到记录,就像这样(伪代码):
fetchedData = query table1
if fetchedData == null
fetchedData = query table2
if fetchedData == null
...
fetchedData = query table5
我看到的主要缺点是我可能会查询数据库5次而不是1次,具体取决于记录存储在哪个表中。但由于查询更小且更有针对性,因此它们应该给我更快的响应时间。或者我应该把它留给MySQL分区?让我们在第二种情况下对可维护性进行折扣。
答案 0 :(得分:1)
都不是。
500行是微不足道的。即使MySQL可以并行执行,也无济于事。
使用合适的索引 - 通常会有很大的帮助。
您的特定伪代码并不比使用最终LIMIT 1
的MySQL查询可以在扫描所有内容之前停止查询更好。所以,再说一次,我说“两种分区都不会有任何帮助”。