JOIN是一个不适合内存的大型mysql数据库。

时间:2011-10-16 13:47:23

标签: mysql sql database join left-join

JOIN是SQL数据库的一个方便功能,但是大型数据库(> 10GB)呢。考虑三对(两列)多对多关系表,因为我们希望得到与一个案例相关的项目(例如一篇文章的标签)。

事实(如果我错了,请纠正我): 1.对于JOIN,三个表应该适合内存。 2.单个SELECT by PRIMARY KEY不消耗内存。 3.当我们并发许多并发读连接时,多余的连接将保留在队列中(不会导致请求失败或过载)。

然后,执行三个简单的SELECT查询不是更好。这使得系统稍慢,但我相信处理整个技嘉表的表更有效。

有人可能会建议增加更多是最终解决方案;但我认为仍然处理这样大的表并不容易使用多余的RAM。

使用PRIMARY KEY限制对简单SELECT查询的操作可以是一种有效处理大型数据库的实用方法。

2 个答案:

答案 0 :(得分:4)

如果您声称最好在三个单独的表上进行选择,那么您自己在数据库引擎之外加入数据,那么您就错了。数据库将更好地加入您的查询。这些表并非都必须适合RAM才能使联接起作用。

答案 1 :(得分:1)

索引对大型数据库非常有用。

这些可能有助于http://www.databasejournal.com/features/mysql/article.php/1382791/Optimizing-MySQL-Queries-and-Indexes.htm

http://www.tizag.com/mysqlTutorial/mysql-index.php

索引可能因数据库实现而异,如果没有正确设计/实现,它们也有缺点(这就是为什么你不只是为每个字段编制索引)。