我想为插入设置 bulk_insert_buffer_size 变量。我也从其他页面搜索过,他们都在说 my.cnf。但是我的系统中没有my.cnf。我检查了 my.ini,那里没有这样的变量。
我也尝试通过命令行 -
SET GLOBAL bulk_insert_buffer_size= 268435456;
它显示 -
1 queries executed, 1 success, 0 errors, 0 warnings
Query: SET GLOBAL bulk_insert_buffer_size =1024*1024*256
0 row(s) affected
Execution Time : 0 sec
Transfer Time : 0.001 sec
Total Time : 0.002 sec
但是在运行时 -
SHOW VARIABLES LIKE '%bulk%';
我得到了相同的(旧的)-
Variable_name Value
bulk_insert_buffer_size 8388608
如果我做错了什么,请告诉我。 我使用的是 Mysql 5.5 版本。 谢谢。
最佳答案
令人困惑。它在 GLOBAL 中没有更改,但在 SESSION 中更改。我还使用 MySQL 5.5、CentOS、64 位。无论如何,如果您想永久设置此值,请添加“set bulk_insert_buffer_size=256M”并重新启动。
mysql> show variables like '%bulk%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| bulk_insert_buffer_size | 268435456 | <= initial value
+-------------------------+-----------+
1 row in set (0.00 sec)
mysql> set global bulk_insert_buffer_size = 1024 * 1024 * 1;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%bulk%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| bulk_insert_buffer_size | 268435456 | <= not changed with GLOBAL
+-------------------------+-----------+
1 row in set (0.00 sec)
mysql> set session bulk_insert_buffer_size = 1024 * 1024 * 1;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%bulk%';
+-------------------------+---------+
| Variable_name | Value |
+-------------------------+---------+
| bulk_insert_buffer_size | 1048576 | <= changed with SESSION
+-------------------------+---------+
1 row in set (0.00 sec)
MySQL manual 说 bulk_insert_buffer_size
可以在 MySQL 运行时修改(动态变量
= 是)。 SESSION 和 GLOBAL
是可变的。
已更新
IF bulk_insert_buffer_size
通过 GLOBAL 改变,似乎不影响 SESSION 变量(仍然令人困惑)。要看,使用“SHOW GLOBAL VARIABLE”,“SHOW VARIABLES”隐含“SHOW SESSION VARIABLES”
mysql> show session variables like '%bulk%';
+-------------------------+---------+
| Variable_name | Value |
+-------------------------+---------+
| bulk_insert_buffer_size | 2097152 |
+-------------------------+---------+
1 row in set (0.00 sec)
mysql> show global variables like '%bulk%';
+-------------------------+---------+
| Variable_name | Value |
+-------------------------+---------+
| bulk_insert_buffer_size | 1048576 |
+-------------------------+---------+
1 row in set (0.00 sec)
mysql> show variables like '%bulk%';
+-------------------------+---------+
| Variable_name | Value |
+-------------------------+---------+
| bulk_insert_buffer_size | 2097152 |
+-------------------------+---------+
1 row in set (0.00 sec)
关于mysql - 如何在 mysql 中设置 bulk_insert_buffer_size?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20301010/