我有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 |
+-------------+---------------+
答案 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,
也为每个人创建一个索引。