mysql知识点总结

mysql命令

1、mysql命令导出表中某个字段

需求:存储内容更换了存储,需要将存储id给运维用于迁移
执行

sudo nohup mysql -hxxx -uxxx -Pxxx -pxxx -Dxxx -e"select content_id from xxx where content_id!=''" > /home/yanfa/20230321.txt &

查看后台关于mysql的进程ps -ef | grep mysql
结果
控制台报出直接被Killed,说明进程被杀死了

[1]+  Killed     sudo nohup mysql -hxxx -uxxx -Pxxx -xxx -Dxxx-e"select content_id from xxx where content_id!=''" > 

原因
导出数据太大 直接被kill掉了 加上 --quick
解决
添加参数–quick 处理的数据大概两千八百多万行,1.4G

mysql --quick -hxxx -uxxx -Pxxx -pxxx -Dxxx -e"select content_id from xxx where content_id!=''" > /home/yanfa/20230321_A1.txt

2、导入测试环境数据库中所有表到本地中,目的主要是为了调试

a、导出测试环境数据 同时进行压缩()

sudo nohup mysqldump -h127.0.0.1 -P3306 -uroot -p123 --databases xxx | gzip > /home/yanfa/xxx_test.sql.gz &

b、导入到本地(对上面压缩包解压执行导入命令、数据库提前没有创建所以下面这也不需要指明导入哪个数据库,没有自动为我们创建数据库)

mysql -hlocalhost -P3306  -uroot -p3306  < /Users/liuyuanyuan/Desktop/company/mysqlcopy/databasecopy/xxx_test.sql

sql语句踩坑合集

1、MySql中count与limit混用

参考:传送门
背景:一张表中存储了文本的内容id,由于更换了存储,需要把改表中的字段导出来。
当使用sudo nohup mysql -hxxx -uxxx -Pxxx -pxxx -Dxxx -e"select content_id from xxx where content_id!=''" > /home/yanfa/20230321.txt &
发生了进城被killed掉,原因是数据量过大大概有3000w数据1.4G,解决是添加–quick参数。不过在这我是想用分段导出的。
先把总数查出来,然后根据情况分段,发现查询的结果是总数。

select count(content_id) from xxx where content_id!='' order by id limit 0,12000000
select count(content_id) from xxx where content_id!='' order by id limit 12000000,25116871

原因:count和limit混用不起作用,因为limit将不会限制计数或总和,而只限制返回的行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值