set global max_allowed_packet=1024 *1024 * 512; # 单个packet可以允许的最大值
set global max_connections = 60000; # 并发连接请求量比较大,建议调高此值,以增加并行连接数量
set global innodb_lock_wait_timeout=16 * 1024; # 事务锁超时时间,默认50s,超过就报错
set global bulk_insert_buffer_size=512 * 1024 * 1024; # 加快insert插入效率
set global wsrep_max_ws_size=1024*1024*1024*4; # 避免事务大小超过限制,最大4G
注意:
- 导入大批量数据建议在DOS窗口或者Xhsell里面连接Mysql数据库管理系统,直接使用source命令导入,原因是Navicat需要把请求发送到Mysql数据库管理系统,另外还掺杂着事务,所以最好不要在导入大批量数据的时候使用,但是source命令是Mysql自带的命令,可以直接和Mysql进行交互,例如
source sql文件全路径地址
- 如果你一定要使用Navicat,在设置上述参数之后先关闭Navicat,然后在打开Navicat,这些参数才能生效,至于生效与否可以通过获取当前参数值语句查看(即:
select @@参数名称
),这也就是网上所说的:“命令行修改之后,需要退出当前回话(关闭当前mysql server链接),然后重新登录才能查看修改后的值。” - 以上参数设置只能在本次有效,如果Mysql重启这些参数设置就失效了,如果想让这些参数长期生效,需要在my.cnf配置文件中修改,具体设置方法请查询互联网,比如https://www.jb51.net/article/58727.htm,这也就是网上所说的:“通过命令行修改只能临时生效,下次数据库重启后又复原了。”
- 命令行修改时,只能使用字节作为单位,默认就是字节,所以不用写单位,,但是配置文件修改可以设置M、G单位。
- max_allowed_packet 最大值是1G(1073741824),如果设置超过1G,查看最终生效结果也只有1G。