在Mysql上加入100GB表

时间:2016-01-01 07:30:13

标签: mysql sql

我有2个包含100gb数据的表。

第一张表

java:comp/DefaultManagedScheduledExecutorService

第二张表

+-------------+---------------+
| id          | code          |
+-------------+---------------+
| 10255911    |sample data    |
| 10255912    |sample data    |
| 10255913    |sample data    |
+-------------+---------------+

我需要以最快和最佳的方式连接表来创建视图。功能UNION ALL非常懒散。表(VIEW)应为

+-------------+---------------+
| id          | code2         |
+-------------+---------------+
| 10255911    |sample data    |
| 10255912    |sample data    |
| 10255913    |sample data    |
+-------------+---------------+

2 个答案:

答案 0 :(得分:1)

在两个表的ID列上创建INDEX。

SELECT table_1.id
    , table_1.code 
    , table_2.code2
FROM table_1 INNER JOIN table_2
  ON table_1.id = table_2.id
  ;

答案 1 :(得分:0)

对于100 GB的两个表,我不认为加入是可取的。要运行连接查询,您需要在开发人员计算机上获得最高CPU,MEMORY,最佳mysql配置等。

最好将这两个表合并为一个。有了这个优势,您可能需要将php应用程序代码更改为一点,以便相应地将数据插入到新表中。

e.g. 
+-------------+---------------+-------------+
| id          | code          | code2       |
+-------------+---------------+-------------+
| 10255911    |sample data    |sample data  |
| 10255912    |sample data    |sample data  |
| 10255913    |sample data    |sample data  |
+-------------+---------------+-------------+

and then create index on Id field. 

If code and code2 fields are going to be used into where clause, 

也为每个人创建一个索引。