gpt4 book ai didi

mysql - int和binary的插入速度

转载 作者:行者123 更新时间:2023-11-30 23:29:39 26 4
gpt4 key购买 nike

我阅读了帖子:How number of columns affects performance ? .看来列数会大大降低插入速度。所以我创建了两个表:第一个有 100 个 tinyint 列和 100 个 smallint 列,第二个有一个二进制 (100) 列和一个二进制 (200) 列。所以这两个表的行长相同。

更具体地说:

CREATE TABLE 'users'(

'c0' tinyint(4) not null default '0',

'd0' smallint(6) not null default '0',

.....

'c99' tinyint(4) not null default '0',

'd99' smallint(6) not null default '0'

) ENGINE = InnoDB default CHARSET = utf8

CREATE TABLE 'users2'(

'c0' binary(100) not null default '\0 *100',

'd0' binary(200) not null default '\0 * 200'

) ENGINE = InnoDB default CHARSET = utf8

然后我从 mysql workbench 运行了以下两个过程。

create procedure insert1()

begin

declare v_max int default 1000;
declare v_counter int default 0;
while v_counter < v_max do
insert into user (c0, d0, c1, d1....c99, d99) values (0,0,0.....0);
set v_counter = v_counter + 1;
end while;
end

create procedure insert2()

begin

declare v_max int default 1000;
declare v_counter int default 0;
while v_counter < v_max do
insert into users2 (c0, d0) values (0x0000...00, 0x000....00);
set v_counter = v_counter + 1;
end while;
end

结果是:

调用 insert1():0.999 秒

调用 insert2():3.479 秒

由于这两个表的行长相同,而且第一个表的列数更多(200 列),我预计第一个表的插入速度应该比第二个表慢。有人可以帮助解释为什么会这样吗?提前致谢!

最佳答案

您必须将 binary(100) 更改为 binary(4),将 binary(200) 更改为 binary(6)。我听说 binary(n) 是 n = 1 字节,而不是二进制数字。

关于mysql - int和binary的插入速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com