mysql如何加快海量数据的删除速度?

mysql如何加快海量数据的删除速度?,第1张

下面一些方法可以加快

mysql数据库导入数据的速度:

1、最快的当然是直接 copy 数据库表的数据文件(版本和平台最好要相同或相似);

2、 设置 innodb_flush_log_at_trx_commit = 0 ,相对于 innodb_flush_log_at_trx_commit = 1 可以十分明显的提升导入速度;

3、 使用 load data local infile 提速明显;

4、 修改参数 bulk_insert_buffer_size, 调大批量插入的缓存;

5、 合并多条 insert 为一条: insert into t values(a,b,c), (d,e,f) ,,,

6、手动使用事物;

首先, 插入上万条数据,对于数据库来说并不是“很大”的工作量,一般配置的笔记本电脑都可以在1分钟内完成。 所以最简单、最灵活的办法还是写SQL语句。

如果不希望DB编译器每次执行都编译SQL的话,可以使用存储过程,直接调用,性能上会好很多。也比较简单。

(几万条数据怎么地也得要时间去处理,所以不可能特别快的。)

如果由于各种原因,导致这个插入还是很慢, 而且你的MYSQL又是5.0以上版本的话,可以使用BulkCopy来进行批量 *** 作。

BulkCopy的原理就是Client直接把一个数组(DataTable)传给DB,然后传入表名,所有的编译、 *** 作都由DB自己完成,效率很高。

引用MySql.Data.dll , 调用MysqlBulkCopy函数即可。

这个函数在处理海量数据插入的时候效率尤为明显, 小量数据反而没什么优势,而且由于传入的DataTable格式必须和表的字段一模一样(空的列也要传进去),导致C#要写很多代码来构造这个数组,所以要你自己权衡用还是不用。

我在自己的电脑上批量插入一亿条数据,Insert写法大概需要1小时,BulkCopy大概只需要5分钟。

如果你的字段名字没有错的 就是类型错了

在字段没有错的情况下 你SS

update player_levelstats set str='120' WHERE level >'59' AND level <'91' AND class = '1' AND race = '1 '


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6186325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存