mysql - 在 Mysql 上连接 100GB 表

标签 mysql sql

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

第一个表

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

第二个表

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

我需要最快且最佳的方式来连接表以创建 View 。使用 UNION ALL 函数非常慢。表(VIEW)应该是

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

最佳答案

在两个表的 ID 列上创建索引。

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

关于mysql - 在 Mysql 上连接 100GB 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34554394/

相关文章:

sql - Oracle 模式表名称限制

mysql - 在 MySQL 中创建外键时遇到问题

mysql master log pos在全局锁期间发生变化?

mysql - 根据ID从另一个表返回字段名

mysql - 按时间顺序对连接中的数据进行排序以获得最新条目

sql - 支付表设计

php - 使用 php 和 mysql 两个日期之间的动态 Google 图表

php - 在 mysql、php 中搜索年龄范围

sql - 去除 SELECT 中的非数字字符

sql - Hibernate - 在 where 子句中使用外键时避免不必要的连接