› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
RedBeanIce
V2EX  ›  MySQL

日常操作 Mysql 数据库的最佳实践是什么

  •  
  •   RedBeanIce · Sep 24, 2023 · 4229 views
    This topic created in 1100 days ago, the information mentioned may be changed or developed.
    我的需求

    1 ,批量的导入数据,到数据库,可能会有 10000 条 insert 或者 update 的 sql 文件

    2 ,同步两个环境的数据库表结构,以及数据库的数据

    我的调查
    1 ,navicat 在旧款的时候,同步数据库表结构的时,没有全选操作,需要一个个的点击。

    2 ,datagrip 的 copy table to 更是一堆 bug ,

    3 ,或者是在 navicat 或 datagrip 以查询或者 console(myqsldump)的方式执行 sql ,,都会导致导致卡顿。

    请问满足我的需求的话,应该如何选择数据库 GUI 操作软件。
    14 replies  •  2023-09-25 21:00:20 +08:00
    cyningxu
        1
    cyningxu  
       Sep 24, 2023   ❤️ 1
    mysqldump ?
    eDeeraiD0thei6Oh
        2
    eDeeraiD0thei6Oh  
       Sep 24, 2023
    楼主得补习下基础知识了
    RedBeanIce
        3
    RedBeanIce  
    OP
       Sep 24, 2023
    @cyningxu
    额,,直接使用命令行么。
    有点难以操作,容我去学习一下。。
    RedBeanIce
        4
    RedBeanIce  
    OP
       Sep 24, 2023
    @eDeeraiD0thei6Oh

    比如是哪一些方面呢,我去学习一下。
    RedBeanIce
        6
    RedBeanIce  
    OP
       Sep 24, 2023
    @eDeeraiD0thei6Oh 我不清楚 mysqldump ,或者是从文件导入到 mysql 里面去,能不能解决我的问题。

    我印象中,mysqldump 导入几十万条数据时,也会很慢。

    我先去试试!!!!!
    zirawell
        7
    zirawell  
       Sep 24, 2023   ❤️ 1
    datagrip SQL 导入量比较大的话不能直接在 console 导入,容易卡死;另外导出的话选项里没有勾选可以导出触发器和存储过程的选项,我咨询客服后经过自己实践,目前方案如下:
    导出:datagrip 利用 mysqldump 加参数 --routines 可以一同导出存储过程和触发器;
    导入:上方菜单栏-run-edit configurations-选择需要导入的数据库和脚本,执行
    iseki
        8
    iseki  
       Sep 24, 2023 via Android   ❤️ 1
    不知道 MySQL 有没有 copy ... to stdout 和 copy ... from stdin 这样的命令,我导部分数据时都这么干。表结构一般就靠 dump
    zed1018
        9
    zed1018  
       Sep 24, 2023   ❤️ 1
    大批量数据导入建议不要考虑 GUI ,直接做 insert multiple values 的 sql ,然后直接 mysql < in.sql 。
    akira
        10
    akira  
       Sep 24, 2023
    第一步,忘掉 GUI 工具的存在。
    captainm
        11
    captainm  
       Sep 25, 2023
    让 Ai 写 SQL 语句
    yidinghe
        12
    yidinghe  
    PRO
       Sep 25, 2023   ❤️ 1
    https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html
    这是 mysqldump 导出命令的文档,强烈建议仔细过一遍,看看有哪些参数。比如说:

    1. 导入的时候可能存在已有的数据,所以希望导出语句为 insert ignore ;
    2. 希望多个 insert 语句合并成一条,以减少执行的语句数量;
    3. 希望跳过 create table 或 drop table ;
    4. 希望导入过程中锁表以保护数据完整性;
    5. 希望只导出建表语句,不导出数据;
    6. 希望进行流式读取,一边读取一边导出来增加效率

    等等等等,mysqldump 其实是个很强大灵活的工具。
    Jtyczc
        13
    Jtyczc  
       Sep 25, 2023 via Android   ❤️ 1
    我每次发版改 sql 都导出一次数据库 sql ,然后统一放在文件夹下,这样子我有什么问题可以及时回滚。
    sql 文件命名可以是 v1.2_20230909 ,这样版本号是对应服务端的
    VersionD
        14
    VersionD  
       Sep 25, 2023   ❤️ 1
    mysql 的最佳实践非常多都是记录在官方 doc 上的,链接楼上老哥贴的那个 dev.mysql.com 的就是,基本上手完之后都会回归命令行的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3267 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 04:42 · PVG 12:42 · LAX 21:42 · JFK 00:42
    ♥ Do have faith in what you're doing.