Mysql优化(出自官方文档)

Mysql优化(出自官方文档) - 第七篇

Optimizing Data Change Statements

主要涉及到三种操作:INSERT, UPDATEDELETE

1 Optimizing INSERT Statements

尽量将多次小操作合并为,这样子,就只会产生一次连接并且数据一次性发给服务器, 而且,也只有在操作最后才会进行索引更新和一致性检查。

根据预估,通常来讲,一次插入操作所耗费的时间比例如下:

  • 网络连接(3)
  • 发送请求给服务器(2)
  • 解析用户请求(2)
  • 插入行(1,特指插入一个单位行)
  • 插入索引(1,特指插入一个索引)
  • 关闭(1)

因此,你可以采取以下方式来优化插入操作:

2 Optimizing UPDATE Statements

UPDATE 语句的优化类似于SELECT,只是多了一个写入操作;对于写入操作,和INSERT类似,一次性进行多行更新速度将比单行更新快很多。

3 Optimizing DELETE Statements

注:官方文档对于DELETE操作只涉及到了MyISAM表,对于InnoDB部分应该是通用的。

对于MyISAM表,删除行操作的开销通常来讲主要由需要更改的索引数量来决定,为了加快删除速度,可以增大key_buffer_size系统变量。

如果需要删除表中的所有行,那么使用TRUNCATE来代替DELETE FROM操作,TRUNCATE不是事务安全的,如果碰到其他事务或者表锁,那么会跑出错误,所以速度会比DELETE FROM快很多。

原文地址:https://www.cnblogs.com/seancheer/p/11338676.html