我有一个 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。所以,这对我来说似乎效率低下(w.r.t read)。
还有哪些其他可能的解决方案可以帮助我消除冗余,同时最大限度地减少读/写负载的增加?
如果我的疑问不清楚,请发表评论。
谢谢!
最佳答案
查询和结果字符串之间似乎是 N:N 关系,因此:
您需要像您已有的那样的查询字符串。 为结果字符串创建另一张表,并创建另一张表来链接查询字符串和结果字符串。不要忘记外键。
关于mysql - mysql数据库高效读写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19348508/