重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
系统内有一只游戏日志表,每日以百万条数据增长,过段时间需要按照日期清理数据。同事使用delete循环删除过一次,时间久不说,表中的数据是删除了,但是查看服务器发现,*.idb文件大小居高不下,使用optimize table 表名 , 优化表以后,内存大小恢复正常。前前后后花费将近4个小时的时间。效率比较低,偶然想起TRUNCATE TABLE,决定使用以下方案,结果10分钟内,清除3千多万条废弃数据。记录以下,已备下次使用。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于做网站、网站设计、万载网络推广、小程序制作、万载网络营销、万载企业策划、万载品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供万载建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
按以上步骤,可以解决锁表问题。
在mysql中可以通过“delete from table_name where 1=1 order by order_name limit 20;”方法删除前20行数据。
删除前20条数据,肯定是首先需要排序,然后再删除前20条数据。delete from table_name where 1=1 order by order_name limit 20;其中table_name是你希望删除数据的所在表表名,order_name 是你希望按照哪个字段来进行排序的字段名,如果是用系统自动默认的排序,order by order_name 这部分可以不写。
MySQL就是结构化数据的集合,同时也是数据库的管理系统,目前MySQL算是比较流行的数据库之一,在web方面,MySQL也是最好的应用软件,和其他的主流操作系统相互兼容。
这里以 teacher 表为例,删除一条指定 id=8 的数据,命令如下:
执行结果如下图:
以 teacher 表为例,删除多条数据命令如下:
执行结果如下图:
清空表数据命令 :
执行结果如下图:
本小节介绍了如何删除指定 id 的数据、数据表所有数据,需要注意的是使用 TRUNCATE 清空表所有数据,和使用 DELETE 删除表所有的数据的区别是:
下面一些方法可以加快
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、手动使用事物;