所在的位置: mysql >> mysql发展 >> mysql的join和优化

mysql的join和优化

哪里白癜风医院较好 https://jbk.39.net/yiyuanfengcai/yyjs_bjzkbdfyy/
一、sql的连接查询

1.内连接(innerjoin)

只有两个表相匹配的行才能在结果集中显示出来

2.左连接(leftjoin)

以左表为主,左表所有的数据都会在结果集中出现,右表根据左表对应的数据显示,与左表匹配的数据会显示,没有匹配的地方会显示为空

.右连接(rightjoin)

以右表为主,右表所有的数据都会在结果集中出现,左表根据左表对应的数据显示,与左表匹配的数据会显示,没有匹配的地方会显示为空

4、全连接(fulljoin,mysql不支持,oracle支持)

完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

所有连接情况如下图所示:

二、优化原则:

1、全值匹配我最爱2、最佳左前缀法则、不在索引列上做任何操作(计算、函数(自动or手动类型转换)),会导致索引失效导致全表扫描4、存储引擎不能使用索引中范围条件右边的列5、尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select*6、mysql在使用不等(!=或者)的时候,无法使用索引导致全表扫描7、isnull或者isnotnull也无法使用索引8、like以通配符开头(‘%abc…’)会导致索引失效导致全表扫描9、字符串不加单引号会造成索引失效10、少用or连接,用它来连接时会造成索引失效

优化小口诀:

为排序使用索引:

预览时标签不可点收录于合集#个上一篇下一篇

转载请注明:http://www.aierlanlan.com/tzrz/341.html

  • 上一篇文章:
  •   
  • 下一篇文章: