mysql - 如何在 mysql 中设置 bulk_insert_buffer_size?

标签 mysql variables global-variables myisam

我想为插入设置 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 manualbulk_insert_buffer_size 可以在 MySQL 运行时修改(动态变量 = 是)。 SESSION 和 GLOBAL 是可变的。

bulk_insert_buffer_size

已更新

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/

相关文章:

Python Flask 只运行一次代码

Mysql根据另外一个计算出来的selected值添加select

c - 开关 : Declared Variable outside switch and use it in it

function - Swift 类中的静态与类函数/变量?

javascript - NodeJS : how to create a flag

java - 在不同的 Controller 中使用一个对象

python - 在python中跨文件设置全局变量

mysql - Django save() 不起作用

MySQL 在 select * 中找不到 View

MySQL 表中的 PHP PDO 计数和总和值