MySQL优化

MySQL优化

  1. 表关联查询时务必遵循小表驱动大表的原则。
  2. 使用查询语句where条件的时候,不允许出现函数,否则索引会失效。
  3. 使用单表查询的时候,相同的字段不要用or,因为使用OR可能会导致索引失效。,但是可以使用union替代。
  4. 模糊查询的时候,尽量不要使用%开头,否则索引失效。
  5. 组合索引使用的时候,需要按照从左到右的顺序来使用,否则是失效。
  6. 索引不宜过多,应该根据实际情况而定。(一般不超过十个)
  7. 每张表必须要有主键,达到加快查询的效率。
  8. 分表,可根据业务字段尾随中的个位或十位或百位做表名达到分表的目的。
  9. 分库,可根据业务字段的尾数的个位或十位或百位做库名达到分库的目的。
  10. 表分区,类似硬盘分区,可以将某个时间段的数据存放到分区里,加快查询速度,可以配合分表+表分区结合使用。

神奇EXPLAIN语句
EXPLAIN显示了查询语句中的索引使用情况 ,这样可以根据索引的使用情况来优化sql。
在这里插入图片描述
id: SELECT识别符号。这里是SELECT的查询序列号。

select_type: SELECT类型,可以使一下的任何一种。

  • SIMPLE:简单的SELECT(不使用UNION查询)
  • PRIMAEY: 最外面的SELECT.
  • UNION:UNION中的第二个或后边的SELECT语句。
  • DEPENDENT UNION:UNION中的第二个或后边的SELECT语句,取决于外边的查询。
  • UNION RESULT: UNION的结果。
  • SUBQUERY :子查询的第一个SELECT。
  • DEPENDENT SUBQUERY:子查询中的第一个SELECT取决于外面的查询。
  • DERIVED:导出表的SELECT。
    table: 输出行所用的表。
    partitions: 表分区。
    type: 连接类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值