前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL的几个知识点

MySQL的几个知识点

作者头像
AsiaYe
发布2019-11-06 17:06:18
7600
发布2019-11-06 17:06:18
举报
文章被收录于专栏:DBA随笔DBA随笔

MySQL的几个知识点

今天上班没搞什么新的东西,所以简单写点儿MySQL相关的小的tip,希望对大家有所帮助吧,如果你恰好了解这些功能,那权当我没说过。

1、mysqldump可以将数据导出为csv文件。

今天在和同事讨论如何将MySQL中的数据流转到infobright的时候,同事提了两个方案,一个是select into outfile的方法,直接导入到一个csv文件中,还有一个是使用mysqldump进行导入,说实话,这个方法我之前没有用过,因为从来没有尝试过使用mysqldump来导出csv文件,一般导出数据到文件,都是使用的select into outfile的方法。于是我查了查资料,发现mysqldump真的可以导出csv文件,方法大概如下:

代码语言:javascript
复制
mysqldump -uroot -p123456 db_name tbl_name -t -T /data/mysql/data --fields-terminated-by=','
1、db_name;导出的数据库;
2、tbl_name;导出的数据表;
3、-t;不导出create 信息;
4、-T 指定导出文件位置的位置
5、--fields-enclosed-by=\"  字段引号;
6、--fields-terminated-by=,  字段分割符;

这里有几个点需要注意:

a、使用的用户需要有select和file权限

b、到处的目录必须让mysql用户有写权限

c、该操作只能在服务器本地进行,不能远程进行

d、可以结合-w参数,设置条件来过滤出想要到处的记录

2、MySQL8.0版本支持一个用户使用两个密码

这个是另外一个同事发现的,在MySQL8.0.14版本,可以查看官方文档,支持同时存在两个密码,大概讲一下逻辑:

我们知道,mysql中可以使用alter user的语法来修改密码,例如要将root密码置空,假设原来的密码是123456,我们可以使用alter user root@'localhost' identified by '';的方法,那么要在置空之后,使用原来的密码123456也能登录,可以使用下面的语法:

代码语言:javascript
复制
alter user root@'localhost' identified by '' retain current password

这个时候,就可以使用两个密码进行登录了,这个时候,如果我们想回收第一个密码123456,应该怎么办?使用下面的SQL:

代码语言:javascript
复制
alter user root@'localhost' discard old password

使用这个方法之后,老的密码123456将会不可用。

需要注意,在这个过程中,操作账号应该拥有application_password_admin权限或者create user的权限。

最后,这个新的功能有啥用?其实使用在某些对安全要求比较高的业务场景下面。例如业务需要每个季度更换一次登录密码,而且不能停机维护,要做到业务无感知,这种情况下,这个功能就派上用场了。

3、解析innodb数据文件的工具

今天下午还在想,如何能够查看ibdata.ibd这个文件中的内容,晚上就在老叶茶馆的公众号上看到的这个工具,叫innblock,它的功能是可以查看ibd数据文件,可以得到每一行数据的偏移量,并且按照逻辑和物理的顺序排序。给上github地址:https://github.com/gaopengcarl/innblock

还有一个工具叫bcview,可以讲数据文件按照既定的大小分块,例如16kb,然后访问每个块的偏移量后制定的字节数。地址和上面一样。

工具我还没有测试,大家有兴趣可以测试一下。

4、MySQL explain analyze

这也是MySQL8.0的新功能,它是用来分析和理解查询如何执行的,可以理解为一个对explain功能的完善吧。主要有下面2个分支:

a、检查查询计划

explain format=tree select xxxxx

该功能可以向我们显示查询计划和成本估算。

b、分析查询执行

explain analyze select xxxxx

显示在查询上花费的时间以及原因,并生成查询计划

具体用途:可以用来查询为何一个select语句花费了这么长时间?时间都花在了那里?或者是为什么优化器选择了这个计划?等等一系列问题,有兴趣大家可以翻看8.0的官方文档。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档