背景:优化一个20数据的表查询
###优化前
 EXPLAIN
SELECT DISTINCT
  ect.contract_no AS contractCode,
  ect.contract_name AS contractName,
  NULL AS supplierId,
  ect.b_name AS supplierName
FROM
  `eva_test` ect
  LEFT JOIN td_outline_test toa
    ON ect.`contract_no` = toa.`contract_no`
WHERE toa.`contract_no` IS
ORDER BY ect.`id`;

###优化后
 EXPLAIN
SELECT
  ect.contract_no AS contractCode,
  ect.contract_name AS contractName,
  NULL AS supplierId,
  ect.b_name AS supplierName
FROM
  `eva_test` ect
  LEFT JOIN td_outline_test toa
    ON ect.`contract_no` = toa.`contract_no`
WHERE toa.`contract_no` IS NULL 
 ORDER BY ect.`id`; ###查询合同编号的数量大于1的合同

###使用EXISTS ,在使用优化后
   EXPLAIN
  SELECT
    ect_out.contract_no AS contractCode,
    ect_out.contract_name AS contractName,
    NULL AS supplierId,
    ect_out.b_name AS supplierName
  FROM
    eva_test ect_out
  WHERE NOT EXISTS
    (SELECT
      toa.`contract_no`
    FROM
      td_outline_test toa
    WHERE ect_out.`contract_no` = toa.`contract_no`)
  ORDER BY ect_out.`id`;
  
 ###使用eva_test.contract_no字段的索引,不推荐使用
 SELECT 
  ect_out.contract_no AS contractCode,
  ect_out.contract_name AS contractName,
  NULL AS supplierId,
  ect_out.b_name AS supplierName
FROM
  eva_test ect_out
WHERE ect_out.`contract_no` NOT IN
  (SELECT DISTINCT
    ect.contract_no
  FROM
    `eva_test` ect
    LEFT JOIN td_outline_test toa
      ON ect.`contract_no` = toa.`contract_no`
  WHERE toa.`contract_no` IS NOT NULL) ;
  
  ####辅助查询
  SELECT
    contract_no,
    COUNT(contract_no) AS COUNT
  FROM
    eva_test
  GROUP BY contract_no
  HAVING COUNT(contract_no) > 1
  ORDER BY countDESC;