我有一个mysql表,它存储了一组查询(字符串)。
该表及其内容如下所示:-
query_id queryString
1. Query 1
2. Query 2
3. Query 3
以某种方式与上述查询相关的结果表以如下形式存储在不同的mysql表中
result_id query_id resultString
1. 1 Result 1
2. 1 Result 2
3. 2 Result 3
4. 2 Result 4
5. 2 Result 1
6. 3 Result 3
7. 3 Result 4
8. 3 Result 5
很明显,上面的模型有冗余,因为我必须存储
结果1
,
结果3
和
结果4
不止一次。这种冗余随着类似查询数量的增加而进一步增加。所以,比方说,如果我必须对结果查询进行一些处理,我将不得不对几个重复的值进行处理。
我可以想到的另一种选择是,我可以将结果唯一地存储在表中,并将它们所引用的results_id与查询一起存储在查询表中。但在这种情况下,在读取查询的结果时,我必须命中多个mysql查询,其中一个查询对应于我所拥有的每个result_id。所以,在我看来,这似乎效率低下。
还有哪些可能的解决方案可以帮助我在读/写负载增加最小的情况下消除冗余?
如果我不清楚自己的疑问,请发表评论。
谢谢