• 〖Python 数据库开发实战 - MySQL篇㉝〗- 数据的导入与导出


    万叶集
    🎉 隐约雷鸣,阴霾天空。 🎉
    🎉 但盼风雨来,能留你在此。 🎉


    前言
    ✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS - 全栈 赋能的博主 ✌
    🏆 CSDN博客专家认证、新星计划第三季全栈赛道 MVP 、华为云享专家、阿里云专家博主 🏆
    📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
    💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
    🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


    专栏系列(点击解锁)学习路线(点击解锁)知识定位
    🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
    语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
    自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
    自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
    数据库开发实战篇 掌握关系型与非关系数据库知识,提升数据库实战开发能力。
    爬虫入门与实战 更新中
    数据分析篇 更新中
    前端入门+flask 全栈篇 更新中
    django+vue全栈篇 更新中
    拓展-人工智能入门 更新中
    网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
    网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
    vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
    shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
    WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
    测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
    测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
    RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
    Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
    MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。

    在这里插入图片描述


    该章节要学习的是如何导入导出数据,很多人都认为数据的导出与导入等价于数据的备份与还原,其实这种观点是错误的。



    🐳 数据导出与备份的区别


    • 数据导出:导出的是纯粹的业务数据,也就是 “数据文件” 。(不包含有数据库当前的状态,数据库当前的状态包含有很多东西。比如数据文件、错误日志等等。)
    • 数据备份:使用数据备份就可以完整的备份当前的数据库状态,这种方式既备份了数据文件,也备份了各种日志文件与索引文件等等,乃至于数据库的配置文件。

    所以如果想要完整的备份 MySQL 数据库,还是得选择 "数据备份" 这种方式,MySQL 的备份分为 "全量备份" 与 "增量备份" 这两种。

    • “全量备份”:顾名思义, “全量备份” 就是完整的备份数据库的意思,缺点就是比较占用硬盘空间。
    • “增量备份”:有了 “全量备份” 之后,后面我们就可以选择 “增量备份” 了。也就是只备份有变动的那一部分数据,这种方式就对硬盘空间的占用会小很多。


    🐳 数据导出的分类


    • MySQL的数据导出可以分为两种:导出为 "SQL" 文档导出为 "文本" 文档

    • SQL文档:如果说导出的数据不是很多的情况下,还是建议大家导出为 “SQL文档”。
    • 文本文档:反之,当我们导出的非常多的情况下,还是建议导出为 “文本文档” 比较好。


    🐬 导出数据为 SQL 文件


    • 将数据导出为 SQL 文件,里面包含了 “create table” 建表语句、“create index” 创建索引语句、“insert into” 插入记录的语句。
    • 可以说 SQL 文件中既包含了 “表结构”,也包含了 “业务数据” 。当我们在数据库导入 SQL 文件的时候,其实就是相当于把 SQL 文件里的所有 SQL 语句执行了一遍。

    • 思考一个问题:如果数据库有 50万 条记录,导出为 SQL 文件,该文件其实就是有 50万 条 “INSERT” 语句。MySQL 执行每一条 SQL 语句的时候,都要进行词法分析与优化,所以导入这 50万 的SQL文件确实需要花费一定的时间。
    • 所以说,只有在数据量很小的情况下,才建议导出为 SQL 文件。

    导出 SQL 文件的方式:

    • 命令行方式导出SQL文件:
    mysqldump -uroot -p [--no-data] 逻辑库 > 路径
    
    -- -p:表示为执行导出的时候需要手动输入密码,如果驶入密码错误,则该导出指令无法执行。
    -- [--no-data]:可选条件,如果想要只导出表结构的话,就写上 "--no-data" ; 不带上 "--no-data" 的意思是既导出表结构也导出数据
    -- 逻辑库:指定导出数据的逻辑库
    -- 路径:导出 SQL 文件的路径地址
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 图形界面导出SQL文件:(很简单)


    🐬 导入 SQL 文件


    • 在之前的章节讲解中,我们已经演示过太多次的图形界面导入 SQL 文件了,这里我们主要讲解一下使用命令行导入 SQL 文件。
    • 上文的导出命令是在系统环境下执行的,而导入 SQL 文件的命令则必须要在 MySQL 的命令行下才能够执行,用法如下:
    sql > USE demo;
    sql > SOURCE SQL文件所处的路径及文件名
    
    • 1
    • 2


    🐬 图形界面导出数据为文本文档


    • 导出为 “文本文档” 方式的好处就是导出的文档里面只有纯粹的数据,而不是 SQL 语句。
    • 当我们将要导入文本文档的时候,由于 “文本文档” 没有 SQL 语句,所以 MySQL 执行导入是跳过 “词法分析”、"语法优化"的,直接将文本文档的数据写入到 MySQL 的数据文件内。
    • 这种方式的导入速度是非常的快的,所以当 逻辑库 的数据非常多的情况下,选择导出为 “文本文档” 的优点是 “文本文档” 要比 “SQL 文档” 在体积上要小很多,另一个优点就是导入的速度非常快。
    • 因为导入、导出文本文档的 SQL 命令 非常的复杂,不是那么容易的掌握,所以这里我就用图形界面的方式为大家演示一下,想要了解 SQL 命令导出 "文本文档" ,可以自行拓展一下。

    • 需要注意的地方:如果我们选择只导出 "文本文档" 的情况下,然后将这其拿到其他的 MySQL 数据库导入是没有办法导入并还原的;因为该 "文本文档" 并不知道 "表结构" 是什么,所以在导出为 "文本文档" 时,首先要将 "表结构" 备份出来。
    • 下文演示以 “t_emp” 员工表 为例:






    如此,图形界面导出数据为文本文档的步骤,就完成了。这个文档就没有任何的 SQL 语句,有的就是纯粹的业务数据。

    所以说刚刚我们先操作,导出 “表结构” 就是非常正确的,不然,这样的文档格式文件拿到其他的 MySQL 数据库,是根本没有办法导入执行数据还原的。



    🐬 图形界面导入文本文档还原数据


    • 在进行导入 “文本文档” 还原数据时,我们需要先将 “t_emp” - 员工表删掉,如此,才能够演示好导入 "文本文档"的的效果。
    • "文本文档" 导入顺序为,先导入 "表结构" ,再导入还原数据的 "文本文档"。

    • 导入完成 “表结构” 之后,再导入还原数据的 “文本文档”。

    • 导入的 “文本文档” 的过程很简单,基本上一路 “下一步” 就可以。(下面贴出来需要注意的地方)


    导入 "文本文档" 的时候是完全跳过 "词法分析" 与 "语法优化" 的,直接将数据导入到数据文件里面,这个速度是非常非常快的。如果是导入几百万条数据,可能几分钟都用不了,那可真的是相当快了。



  • 相关阅读:
    axios的介绍及配置多个服务器url
    Maven核心概念全解析
    Meetup 回顾|Data Infra 研究社第十五期(含资料发布)
    深度|谁在为OpenAI和Anthropic的AI编程竞赛提供“军火”?已赚得盆满钵满
    (学习日记)2022.7.28
    网络问题定位工具记录
    Vscode MacOS版本下载及html配置
    uniapp 实现不同用户展示不同的tabbar(底部导航栏)
    698. 划分为k个相等的子集
    C语言:字符串函数(2)
  • 原文地址:https://blog.csdn.net/weixin_42250835/article/details/126376664