Mysql的优化

博客介绍了MySQL优化的方法,主要分为索引优化、SQL语句优化和表的优化三部分。索引优化包括避免含NULL值列设索引等;SQL语句优化要避免全表扫描等;表的优化有字段用NOT NULL等。此外还提及查询优化的一些策略,如做缓存、表拆分等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mysql的优化,大体可以分为三部分:索引的优化,sql语句的优化,表的优化。

 

索引优化

  1. 只要列中含有NULL值,就最好不要在此列设置索引,复合索引如果有NULL值,此列在使用时也不会使用索引。
  2. 索引的字段尽量要短一点。
  3. 对于经常在where子句使用的列,最好设置索引,这样会加快查找速度。
  4. 对于有多个列where或者order by子句的,应该建立复合索引。
  5. 尽量不要在列上进行运算(函数操作和表达式操作)。
  6. 索引在处理not in 和 <> 操作时会显得吃力。

sql语句的优化

查询优化就要尽可能避免全表扫描。

  1. 查询时,能不要*就不用*,尽量写全字段名,因为从数据库中读出越多的数据,查询就会变得越慢。
  2. where 及 order by 涉及的列上建立索引。
  3. 一般来说,join效率高于子查询的效率。
  4. 使用联合(UNION)来代替手动创建的临时表。
  5. 使用事务的属性,提高并发。
  6. 多表连接时,尽量小表驱动大表,即小表 join 大表,这样读出的数据更精炼。
  7. 对于经常使用的查询,可以开启缓存。

表的优化

  1. 表的字段尽可能用NOT NULL(选取最适用的字段属性)
  2. 字段长度固定的表查询会更快(底层对于长度固定的数据,处理的更快)
  3. 表的切分(水平切分,垂直切分)

MySql查询优化

  1. 缓存,在持久层或持久层之上做缓存。
  2. 恰当地使用索引。
  3. 表的拆分。
  4. 数据库表的大字段剥离。
  5. 放弃关系数据库的某些特性(比如事务),引入NoSQL数据库。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值