我们有一个Mysql Master Slave架构。我们有大约1000张桌子。我们的数据库中有5或6个表,每个表大约30到40 GB。我们不能将一个30 GB的表连接到另一个30 GB的表,因为它永远不会返回结果。
我们的工作:从一个表中选择所需数据,然后在块中查找另一个表中的匹配数据。这给我们带来了结果,但这很慢。
在以块的形式连接两个表之后,我们进一步处理这些表。我们使用少量连接以及用例。
当前数据库:架构:5个主服务器,100个从属服务器。
1。我们怎样才能让它更快?索引在这里不是问题,我们已经在使用它。
2。我们是否需要一些大数据方法才能获得更快的结果。
编辑:查询详情
Query select count(*) from A, B where A.id = B.uid;
表A 30 GB,有51列。 Id是主键,它是自动增量整数。
表B 27 GB,有48列。 uid(int 11)是非唯一索引。
使用MySql ISAM。
答案 0 :(得分:1)
这是一个糟糕的查询。它会
或
在任何一种情况下,
如果查询,请解释意图;也许我们可以帮助你重新制定它以实现相同或类似的目的。
与此同时,你有多少内存? innodb_buffer_pool_size
的设置是什么?表格是InnoDB吗?
查询最终将返回一个结果,除非某些“超时”杀死它。
id
是AUTO_INCREMENT
吗?或uid
是“UUID”? (UUID使性能变差,但有一些小技巧可以提供帮助。)