sql语句中 用 inner join 连接两张表,大表放在前面比较快还是小表放在前面比较快。

2024-11-27 23:28:27
推荐回答(4个)
回答1:

小表在前可以提高sql执行效率。

首先将大表放在前面,即如图(tmp2表数据量为40亿,tmp1数据量只有81条),这样执行时间为3小时21分钟,然后再将小表放在前面,执行速度为10分钟。

扩展资料:

结构化查询语言包含6个部分:

1、数据查询语言(DQL:Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。

保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。 

2、数据操作语言(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。

3、事务控制语言(TCL):它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。

4、数据控制语言(DCL):它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

5、数据定义语言(DDL):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。

6、指针控制语言(CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

参考资料:百度百科——sql语句

回答2:

一样快。因为Inner join是不分主从表的,结果是取两个表针对On条件相匹配的最小集。

5G的表,得需要多大的服务器资源来处理?
建议你首先针对两张表做Where条件筛选,然后再做Join。

回答3:

一样的。应该是同时检索,做好用存储过程会快点。

回答4:

晕,你就连接两张表,要什么速度快啊,一般把大表放在前面!