首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《MySQL系列》之 性能优化总结(一)

一、数据库设计优化

1、根据业务需求选择正确的存储引擎,如果对事务性要求高就用InnoDB(默认),读多写少尽量使用MylSAM。

2、设置合理的字段类型及字段长度,比如说你这个字段就20多个字段你设置成VARCHAR(255)就是对磁盘空间的浪费。

3、默认值尽可能的使用NOT NULL,可以通过设置默认值避免NULL值。

4、尽量少的使用VARCHAR,TEXT,BLOB这三个字段,这种类型占用很大的空间。

5、添加适当索引(index)[普通索引、主键索引、唯一索引unique、全文索引引。

6、不要滥用索引,大表索引,小表不索引

7、表的设计合理化(符合3NF)。

二、SQL语句优化

1、Explain

主要是关注4个指标:

1、type:优化目标至少达到range级别,要求是ref级别,如果可以const最好。

    a、type性能从高到低

b、key:是查询使用到的索引,如果此列为空,要么未建立索引,要么索引失效。

c、rows:是这条SQL语句扫描的行数,越少越好。

d、extra:此列为扩展列,如果出现临时聚、文件排序则需要优化。

2、where、=条件避免类型转换

入参类型在传入前转换成跟字段类型一致。

内关联避免也要避免类型不一致做过滤

3.避免使用select *

4.、like引起索引失效,尽量满足最左匹配原则,建议这样写:

5、不要在where条件中带有函数计算、类型转换

6、关于in和exist,如果查询的俩个表大小一致则性能差别可忽略,如果子查询表大用exist,否则使用in

7、预知查询一条数据要加上limit 1,以便查到数据终止扫描.

8、关联查询尽量不要超过3个表关联

9、数据字段更新频繁、重复度高不适合建索引

10、 explain中的type至少要达到range,建议为ref

11、尽量用join代替子查询

12、尽量用union all代替union

13、数据优化常用命令

查看Mysql服务器的链接

查询慢查询次数

查看慢查询设置的时间,默认10s.

设置慢查询时间.

查看建表语句

查看表的字段

查看表的索引

历史文章及资料

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230201A00VE400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券