假设我有两个场景,具有相同的数据量,例如一个表有500行。首先,我使用一个查询来查询已分区的MySQL表,并让MySQL引擎的其余逻辑获得我的结果。
在第二个例子中,我创建了5个最多100行的表。然后,我以编程方式遍历这些表,直到找到记录,如下所示(伪代码):
fetchedData = query table1
if fetchedData == null
fetchedData = query table2
if fetchedData == null
...
fetchedData = query table5我看到的主要缺点是,我可能会查询数据库5次而不是1次,这取决于记录存储在哪个表中。但由于查询更小且更有针对性,它们应该会给我更快的响应时间。或者我应该把它留给MySQL分区?让我们考虑一下第二种情况下的可维护性。
发布于 2016-10-05 23:31:15
都不是。
500行是微不足道的。即使MySQL可以并行地做事情,也不会有任何帮助。
使用合适的索引--这通常非常有帮助。
您的特定伪代码并不比末尾带有LIMIT 1的MySQL查询在扫描所有内容之前停止查询的效果更好。所以,我再说一次,“两种类型的分区都不会有任何帮助”。
https://stackoverflow.com/questions/39866088
复制相似问题