gpt4 book ai didi

MySQL - 获得大约的通用方法。以字节为单位的行大小

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

好吧,如果没有人愿意帮我解决这些废话,我不会生气,但我想有一种方法可以在 MySQL 控制台中获取表的逐行字节大小的近似值(好吧,我正在使用phpMyAdmins SQL 窗口)。

内部查询从模式中读取所需的表列并将它们分组连接到语句中,同时将 char_length() 函数添加到每个列名。我没有找到比为此使用 SEPARATOR 更好的方法,但是由于分隔符在第一个元素之后首先出现,所以我添加了两个无意义的元素:开头为“empty”,结尾为“zzempty”。那些后来被替换掉了。

最好的部分是,我认为这段代码可以满足我的要求,但问题是,结果已获取但未显示。

获取prepared statement获取结果的最简单方法是什么?获取结果放入表中的唯一方法是什么?

SET    @query = CONCAT('SELECT ',
(select
REPLACE(group_concat( column_name
ORDER BY
CASE
WHEN column_name="empty" THEN 0
WHEN column_name = 'zzempty'THEN 99
ELSE 1
END,
column_name separator '`) + char_length(`'),
'empty`) + ',
'')
FROM
(SELECT
'empty' as column_name,
'1' as id
UNION
select
column_name,
1 as id
from
information_schema.columns
where
table_schema = 'DB_NAME'
and table_name = 'TABLE_NAME'
UNION
SELECT
'zzempty' as column_name,
'1' as id ) t1
group by
id),' FROM `TABLE_NAME`');
SET
@query2 = REPLACE( @query, '+ char_length(`zzempty', '') ;
PREPARE stmt FROM @query2;
Execute stmt ;

事实上,我认为必须有更简单的方法来获取行大小,但我没有找到。

最佳答案

使用 SHOW TABLE STATUS 询问 MySQL 更容易声明:

mysql> SHOW TABLE STATUS WHERE name='ApiRequest'\G
*************************** 1. row ***************************
Name: ApiRequest
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 105
Avg_row_length: 1872
Data_length: 196608
Max_data_length: 0
Index_length: 16384
Data_free: 2520776704
Auto_increment: 114
Create_time: 2015-05-29 13:00:13
Update_time: NULL
Check_time: NULL
Collation: utf8_unicode_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)

关于MySQL - 获得大约的通用方法。以字节为单位的行大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30644671/

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