之前有一个同事问到我,为什么多个线程同时去做删除同一行数据的操作,老是报死锁,在线上已经出现好多次了,我问了他几个问题:   1. 是不是在一个事务中做了好几件事情?      答:不是,只做一个删除操作,自动提交 2. 有多少个线程在做删除?      答:差不多10个 3. 是什么隔离级别?      答:可重复读   当时觉得不可思议,按说自动提交的话行锁,如果已经有事务加锁了,则会等待,等提交之后再去做,发现已经删除了,就会返回,删除0条,为什么会死锁? 但事情已经出了,必须研究一下,不…
mySQL中删除unique key的语法 CREATE TABLE `good_booked` (  `auto_id` int(10) NOT NULL auto_increment,  `good_id` int(11) default NULL,  `chemist_id` int(11) default NULL,  PRIMARY KEY  (`auto_id`),  UNIQUE KEY `good_id` (`good_id`,`chemist_id`),  KEY `curre…
不知道大家有没有想过下面这件事? 我们平时调用 DELETE 在 MySQL 中删除的数据都去哪儿了? 这还用问吗?当然是被删除了啊 那么这里又有个新的问题了,如果在 InnoDB 下,多事务并发的情况下,如果事务A删除了 id=1 的数据,同时事务B又去读取 id=1 的数据,如果这条数据真的被删除了,那 MVCC 拿啥数据返回给用户呢? 没错,这就需要了解一下 MySQL 的多版本并发的原理相关的东西,感兴趣的可以去看我之前写的这篇文章. 所以,实际情况中,调用了 DELETE 语句删除的数…
需求描述: 在mysql中如何删除binlog,因为随着数据库的运行,mysql中产生的binlog会越来越大,有可能把磁盘撑爆了,所以记录下删除 binlog的方法. 操作过程: 1.通过系统参数控制保留多久的binlog 在my.cnf中,加入以下的参数,重启实例 expire_logs_days = 3 #意思是保留3天的binlog;默认值是0,表示不自动删除. 备注:设置完该参数之后,当重启实例,或者刷新日志的时候,就会进行检查,然后删除3天之前的日志 2.测试在刷新日志的时候,触发删…
删除数据库中重复的记录,只保留一条 DELETE FROM tb_gps_records WHERE id NOT IN (SELECT bid FROM (SELECT min(id) as bid FROM tb_gps_records GROUP BY busNo,longitude,latitude)as b); //cityId=287 DELETE FROM tb_gps_records WHERE cityId=287 and id NOT IN (SELECT bid FROM…
转自:http://blog.csdn.net/apache6/article/details/2778878 1. 在MySQL中有两种方法可以删除数据: 一种是delete语句,另一种是truncate table语句. delete语句可以通过where对要删除的记录进行选择,而使用truncate table将删除表中的所有记录.因此,delete语句更灵活. 2. 如果要清空表中的所有记录,可以使用下面的两种方法: delete from table1truncate table ta…
正好想写一条删除重复语句并保留一条数据的SQL,网上查了一部分资料写的很详细,但还是在这里写下自己的理解,以遍后续学习 .如下: 表字段和数据: SQL语句: [sql] view plain copy DELETE FROM `user` WHERE id NOT IN(SELECT * FROM(SELECT id FROM `user` GROUP BY username)AS b) 理解: 先从里面的SQL开始看 1.SELECT id FROM `user` GROUP BY user…
//首先我们需要知道我们重复的都有哪些数据, //第一步:进行对数据表进行分组,group by. //第二步:进行后通过having进行限制筛选,条数大于等于2的 //第三步:进行多表删除. //案例: //第一步,进行对数据分组,并通过having进行限制筛选,获得存在重复数据老王,如下: //第二步,进行删除,请仔细看删除语句,我们把筛选出来的 AS t2 当做子表.来进行筛选. 例如id和id的下一位进行比较,如果name相同,就删除. //请仔细看下面这句代码,删除的关键 mysql>…
CREATE TABLE `good_booked` (  `auto_id` int(10) NOT NULL auto_increment,  `good_id` int(11) default NULL,  `chemist_id` int(11) default NULL,  PRIMARY KEY  (`auto_id`),  UNIQUE KEY `good_id` (`good_id`,`chemist_id`),  KEY `current_state` (`current_st…
MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复的数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五百万数据,十来分钟就全部去除重复了,请各位参考. 第一步:从500万数据表data_content_152里提取出不重复的字段SFZHM对应的ID字段到TMP3表 create table tmp3 as select min(id) as col1 from data_content…