mysql delete 优化_SQL优化之INSERT、UPDATE、DELETE

一、优化INSERT语句

为了优化插入速度,将许多小型操作组合成一个大的操作。理想情况下,您进行单个连接,一次发送许多新行的数据,并延迟所有索引更新和一致性检查,直到最后。

插入行所需的时间由以下因素确定,其中数字表示大致比例:

连接:(3)

向服务器发送查询:(2)

解析查询:(2)

插入行:(1×行大小)

插入索引:(1×索引数)

结束:(1)

假设B树索引, 表的大小减慢了日志中插入索引的速度。

您可以使用以下方法加快插入:

如果同时从同一客户端插入多行,则使用INSERT带有多个VALUES列表的语句一次插入多行。这比使用单独的单行语句要快得多(在某些情况下快INSERT多倍)。如果要将数据添加到非空表,则可以调整bulk_insert_buffer_size变量以使数据插入更快。

从文本文件加载表时,请使用LOAD DATA INFILE,这通常比使用INSERT语句快20倍。

利用列具有默认值的事实,仅当要插入的值与默认值不同时才显式插入值,这将减少MySQL必须执行的解析,并提高插入速度。

二、优化UPDATE语句

UPDATE语句优化,就像SELECT查询一样 ,具有额外的写入开销。写入速度取决于更新的数据量和更新的索引数量,未更改的索引不更新。获取快速更新的另一种方法是延迟更新,然后在一行中执行许多更新,一起执行多个更新要比一次锁定表更快。

三、优化DELETE语句

删除MyISAM表中单个行所需的时间与索引数量成正比,要更快地删除行,您可以通过增加key_buffer_size系统变量来增加key缓存的大小 。

如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值