mysqldelete优化_SQL优化之INSERT、UPDATE、DELETE ⼀、优化INSERT语句
为了优化插⼊速度,将许多⼩型操作组合成⼀个⼤的操作。理想情况下,您进⾏单个连接,⼀次发送许多新⾏的数据,并延迟所有索引更新和⼀致性检查,直到最后。
插⼊⾏所需的时间由以下因素确定,其中数字表⽰⼤致⽐例:
连接:(3)
向服务器发送查询:(2)
解析查询:(2)
插⼊⾏:(1×⾏⼤⼩)
sql中update什么意思插⼊索引:(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缓存的⼤⼩ 。
如果您觉得本站对你有帮助,那么可以⽀付宝扫码捐助以帮助本站更好地发展,在此谢过。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论