2020
10-08
10-08
MySQL 快速删除大量数据(千万级别)的几种实践方案详解
笔者最近工作中遇见一个性能瓶颈问题,MySQL表,每天大概新增776万条记录,存储周期为7天,超过7天的数据需要在新增记录前老化。连续运行9天以后,删除一天的数据大概需要3个半小时(环境:128G,32核,4T硬盘),而这是不能接受的。当然如果要整个表删除,毋庸置疑用TRUNCATETABLE就好。最初的方案(因为未预料到删除会如此慢),代码如下(最简单和朴素的方法):deletefromtable_namewherecnt_date<=target_date后经过研...
继续阅读 >
路漫漫其修远兮,吾将上下而求索,又到了周末,我继续带各位看官学习回顾Mysql知识。上次说到了流程控制函数,那就从流程控制函数来继续学习吧!#五.流程控制函数#1.if函数:ifelse的效果IF(条件表达式,成立返回1,不成立返回2)#与Java三元运算相同SELECTIF(10>5,'大','小');SELECTlast_name,commission_pct,IF(commission_pctISNULL,'没奖金呵呵','有奖金嘻嘻')AS备注FROMemployees;#2.CASE函数的使用一:swirchcase的效果...
西北望乡何处是,东南见月几回圆。月亮又慢悠悠的挂上了天空,趁着睡前梦呓,我就带领各位可爱的读者们探索MySql最后的子查询部分。说明:有些查询结果出来结果截图与题目要求不一样会出现多余的字段是为了方便展示结果的可读性。实际操作的读者可以删除SELECT后面多余的字段得到正确的结果。#WHERE或HAVING后面#1.标量子查询(单行子查询)#2.列子查询(多行子查询)#3.行子查询(多列多行)#特点:#①子查询放在小括号内#②子查询...
(1)服务器配置:[root@localhost~]#cd/usr/local/src/[root@localhostsrc]#wgethttp://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm[root@localhostsrc]#rpm-ivhmysql57-community-release-el7-8.noarch.rpm"""mysql-community-client-5.7.30-1.el7.x86_64.rpmmysql-community-server-5.7.31-1.el7.x86_64.rpm"""将这两个个rpm包,以FTP形式导入:/var/cache/yum/x86_64/7/mysql57-community/packag...
MySQL的视图简单来说MySQL的视图就是对SELECT命令的定义的一个快捷键,我们查询时会用到非常复杂的SELECT语句,而这个语句我们以后还会经常用到,我们可以经这个语句生产视图。视图是一个虚拟的表,它不存储数据,所用的数据都在真实的表中。这样做的好处有:1.防止有未经允许的租户访问到敏感数据2.将多个物理表抽象成一个逻辑表3.结果容易理解4.获得数据更容易,很多人对SQL语句不太了解,我们可以通过创建视图的形式方便用户使...
在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。--实际SQL,查...
最近用mysql导出表数据到excel文件,mysql中的datetime类型导出到excel(excel2016)中被excel识别成它自己默认的日期格式了,在mysql中的格式形如yyyy-mm-ddhh:mm:ss,到了excel变成了yyyy/m/dh:mm,看起来不太习惯,当然可以通过设置excel单元格格式改成自定义格式yyyy-mm-ddhh:mm:ss,但是这样多了一个步骤,能不能直接从mysql导出到excel的就是mysql显示的样式呢?当然可以。开始猜想是由于mysql中该字段是datetime类型...
如果希望一劳永逸的解决慢的问题,不妨把你的mysql升级到mysql8.0吧,mysql8.0默认的字符集已经从latin1改为utf8mb4,因此现在UTF8的速度要快得多,在特定查询时速度提高了1800%!但是如果时间等不及,就先用下面的办法快速解决一下。问题一:格式不对(常出现时间格式不对的情况);方法1:将excel文件另存为csv,再导入数据库;方法2:导入的第一步时,默认编码方式是65001(UTF-8),可以尝试选择【10008(MAC-SimplifiedCh...
工作原因,常常不能实现完全的线上化(即,所有数据都在线上完成,不需要导入导出),而导出Excel常常比修炼成仙还慢,因此,我们将数据库文件导出到本地使用的时候,常常使用的方法的是导成CSV格式。而csv格式的也常常出现导出的中文乱码,或者蹿行等问题,从而陷入两难境地。老板要数据,你却导不出来,急死人了。1.问题:我们原本要把如左图所示的数据库中的数据导出成他原本的样子,无奈成了右边的乱七八糟的东西;2.解决:a:...