有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多。
一、优化原则
小表驱动大表,即小的数据集驱动大得数据集。在知道什么是小表驱动达大表之前,我们先来了解两个查询关键字,IN 与 EXISTS。我们通过两段查询语句先来了解一下它们的作用。我建立了两张表,一张员工表,一张部门表,员工表中有部门id 这个属性,将这两张表关联起来。
我们先使用IN 来查询数据:
SELECT * FROM t_emp WHERE dept_id IN (SELECT dept_id FROM t_dept) LIMIT 5;
查询结果:由于有很多的员工信息,在这里我就只查询5 条数据。
+-------------+----------+------------+--------------+---------+ | emp_id | emp_name | emp_gender | emp_email | dept_id | +-------------+----------+------------+--------------+---------+ | 00000000177 | 41d80 | m | 41d80@zc.com | 1 | | 00000000178 | a74b8 | m | a74b8@zc.com | 1 | | 00000000179 | 661ca | m | 661ca@zc.com | 1 | | 00000000180 | 9413d | m | 9413d@zc.com | 1 |