gpt4 book ai didi

mysql - 如何知道数据库表mysql中单条记录的内存消耗是多少

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

我有一个数据库表,在导出数据库时仅包含 35000 条记录,我发现文件大小超过 2 GB。

即使我的表架构也不包含任何 BLOB 类型的数据。有没有办法确定MySQL中表行大小。

最佳答案

如果我们首先找出空表消耗的内存大小并执行下一个查询会怎么样:

SELECT table_name AS "Table",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
FROM information_schema.TABLES
WHERE table_schema = "database_name"
AND table_name = "your_table_name";

然后在你的表中插入几行数据,然后再次执行上面的查询,计算一条记录的内存消耗的差值和平均值。例子:我有一张 table :

create table returning_players
(
casino_id int not null,
game_id int not null,
returning_players_count int null,
primary key (casino_id, game_id)
);

所以空表消耗: enter image description here然后插入表1000 000条记录:

DROP PROCEDURE IF EXISTS query;
CREATE procedure query()
BEGIN
declare counter int(20) default 0;
LABEL:
LOOP
IF counter >= 1000000 THEN
LEAVE LABEL;
END IF;
INSERT INTO returning_players VALUES(counter, 45, 5475);
set counter = counter + 1;
END LOOP LABEL;
END;
CALL query();

现在我们有内存消耗: enter image description here正如您所看到的,每 1000_000 行我们大约消耗了 32.56 MB。从这里我们可以得到一行的消耗量。

关于mysql - 如何知道数据库表mysql中单条记录的内存消耗是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42523530/

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