mysqldump指定数据表导出

作者:matrix 发布时间:2021年3月31日 分类:mysql

平时习惯使用mysql客户端工具直接导出表数据,这突然需要导出指定前缀的表反而变得麻烦,因为表非常多但又不想全部选择。

e.g. 导出dict_开头的数据表

查询符合条件的表名

select table_name from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = 'heal' and table_name like 'dict_%';

执行导出命令

mysqldump --column-statistics=0 -h 127.0.0.1 -P3306 -pPASSWORD  -t heal -uroot --tables dict_union dict_tag > ~/db_script.sql

-P端口号
-p密码
--tables 指定多个数据表

报错 mysqldump: Couldn't execute

mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'heal' AND TABLE_NAME = 'dict_union';': Unknown table 'COLUMN_STATISTICS' in information_schema

需要添加参数--column-statistics=0

参考:

https://www.cnblogs.com/commissar-Xia/p/10302336.html

https://researchlab.github.io/2017/02/22/mysql-import-export-summary/

mysql定时任务删除数据

作者:matrix 发布时间:2020年3月31日 分类:mysql

需要每天定时删除旧数据 避免占用大量磁盘空间

用到mysql事件调度器event_scheduler

SHOW VARIABLES LIKE 'event_scheduler'; # 查看开关

SET GLOBAL event_scheduler = ON; #打开事件调度器

#查看事件
SHOW EVENTS;# 其中 EVENT_DEFINITION字段为事件执行的sql语句
select EVENT_NAME,LAST_EXECUTED from information_schema.EVENTS;
DROP EVENT [IF EXISTS] event_name;#删除事件

定时删除旧数据

#每天定时清理 只保留最近30天数据schedule_del_depth5_eos_quarter表

CREATE EVENT IF NOT EXISTS schedule_del_depth5_eos_quarter
ON SCHEDULE EVERY 1 DAY 
STARTS concat(CURRENT_DATE,' 00:00:00') 
DO
delete from okexdata_depth5_eos_quarter where timestamp < DATE_FORMAT( date_sub(curdate(),interval 30 day)  ,'%Y-%m-%d');

参考:

https://www.cnblogs.com/geaozhang/p/6821692.html

https://blog.csdn.net/beyondlpf/article/details/39672599

https://blog.csdn.net/small____fish/article/details/7621160

https://blog.csdn.net/qq_33083551/article/details/88789311