今天接到一位开发同学的数据操作需求,需求看似很简单,需要执行下面的SQL语句: delete from test_track_log where log_time < '2019-1-7 00:00:00'; 看需求描述是因为查询统计较差,希望删除一些历史数据. 带着疑问我看下了表结构: CREATE TABLE `test_track_log` ( `id` ) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', `uid` ) unsigned…
mysql优化, 删除数据后物理空间未释放(转载) OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE TABLE 是指对表进行优化.如果已经删除了表的一大部分数据,或者如果已经对含有可变长度行的表(含有 VARCHAR . BLOB 或 TEXT 列的表)进行了很多更改,就应该使用 OPTIMIZE TABLE 命令来进行表优化.这个命令可以将表中的空间碎片进行合并,并且可以消除由于删除或…
mysql 使用的三个小技巧 快速阅读 Mysql查询工具中如何查询多条语名,Mysql中如何设置变量,Mysql中如何查特定字段,后面再加* Mysql查询工具中如何查询多条语名 默认myslq只能查询一条语句,如果想查询多条,可以在各条之间加;号 select * from tbl_A; select * from tbl_B Mysql中如何设置变量 用set语句, SET @dt = DATE_ADD(NOW(), INTERVAL -2 DAY); 在sql语句直接用变量赋值 SET…
mysql 在删除数据出现Cannot delete or update a parent row: a foreign key constraint fails  这个该如何解决 可以这样解决: SET FOREIGN_KEY_CHECKS = 0; 执行这条语句, 然后再删便可.…
1.查询数据(保证查询性能) SELECT * 和 SELECT t.id , t.name:后者性能其实总体优于前者. 2.在查询的时候最好给表起个 别名,方便找到表中要查询的字段.执行sql的进行多条件查询的时候,使用类如Navicat 之类的工具,按照下面这种格式写查询sql: and cus.uuid='' -- and cus.customerId='' and cus.customerName='' or cus.authState='' -- or cus.createTime='…
工作中MySql的小技巧 1. 跑脚本时,经常遇到有则更新无插入的 逻辑操作:通常情况下,来一波if()判断然后选择 更新还是插入,前两天逛论坛时发现有人在比较REPLACE INTO 和 INSET INTO *** ON DUPLICATE KEY UPDATE ** 的 效率,觉得这是一个是优化以前做法的知识,有点意思. REPLACE INTO 与 INSET INTO *** ON DUPLICATE KEY UPDATE ** 的使用与比较 先创建一个实验表: CREATE TABL…
避免混淆开发环境的DB和生产环境的DB这在小公司小团队尤其常见.一个人即负责开发,又管DB.桌面上开了一坨终端,有的是开发的DB,有的是生产的DB.一不留神,就写串了,或者粘贴串了.更郁闷的是,有时候粘贴会顺便粘贴SQL最后的回车,这样一贴就执行了.稍有不慎就有大祸.这里最重要的就是用很显眼的方式让开发环境的客户端和生产环境的客户端看起来不一样.有这么几种做法:启动mysql时设定一个特定的prompt.使用--prompt=<string>来给生产环境设置一个特别的提示符.$ mysql -…
在MySQL中删除一张表或一条数据的时候,出现有外键约束的问题,于是就去查了下方法: SELECT @@FOREIGN_KEY_CHECKS; 查询当前外键约束是否打开 ; 设置为1的时候外键约束是打开的,设置为0的时候外键约束是关闭的; 删除数据的时候如果想把id序列也清空到1开始可以: truncate table 表名; truncate table category; 如果不需要清空序列直接删除就好了.…
转自:http://blog.csdn.net/apache6/article/details/2778878 1. 在MySQL中有两种方法可以删除数据: 一种是delete语句,另一种是truncate table语句. delete语句可以通过where对要删除的记录进行选择,而使用truncate table将删除表中的所有记录.因此,delete语句更灵活. 2. 如果要清空表中的所有记录,可以使用下面的两种方法: delete from table1truncate table ta…
在清空数据表后发现自动增长id列在新增数据后仍然会按照之前的顺序生成 强迫症,就是想清空数据后让id从0开始,于是百度 执行以下sql语句可以让自动增长列归0 truncate table 表名 这是清空数据后的做法,还有删除数据后让自动增长id连续起来,等自己测试了再来补充…