我有一个包含10k到100k行的表,我需要多达1到2千行的不同集合,但通常要少得多.我希望这些查询尽可能快,我想知道哪种方法通常更聪明:
总是使用一直不同的WHERE子句来查询我需要的行.
将整个表加载到我的应用程序内存中的缓存中并在那里搜索,定期同步缓存
总是查询整个表(没有WHERE子句),让SQL服务器处理缓存(它始终是相同的查询,以便它可以缓存结果)并根据需要过滤输出
我现在想要了解特定的数据库引擎.
10K到100K行,1号对我来说是明显的赢家.如果它<1K我可能会说它在应用程序中保持缓存,但是有了这么多行,让数据库按照它的设计去做.使用适当的索引,数字1将是最好的选择.
如果你每次都反复提取相同的数据集,那么缓存结果也可能是一个更好的选择,但是当你想要一直有不同的地方时,最好让DB来处理它.
就像我说的那样,只要确保你在所有适当的领域都做得很好.