MySQL:按列获取行大小

时间:2015-06-25 23:48:02

标签: mysql size row

我尝试使用SQLyog更改现有表格中的一列,从Varchar(5000)更改为Varchar(10000)

这导致错误:

  

行大小太大。使用的表类型的最大行大小,而不是   计算BLOB,是65535.这包括存储开销,检查   手册。您必须将某些列更改为TEXT或BLOB。

我从这个论坛了解到我需要将这个较大的Varchar字段更改为Text - 我认为该字段存储在'外面。 Innodb中的表格 - 但我有兴趣查看表格的所有列的列表及其使用的大小。

任何人都可以建议查询等,可以这样做吗?

2 个答案:

答案 0 :(得分:2)

查看information_schema.COLUMNS表,它有很多这样的细节。

这是获取任何表的varchar列及其长度的查询 -

SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH
FROM information_schema.COLUMNS AS ins
WHERE ins.TABLE_NAME = '<your table name>' AND ins.DATA_TYPE = 'varchar'

答案 1 :(得分:0)

要查看表格的所有列的列表及其使用的大小,您可以运行:

describe my_table;

或者查看create table语句:

show create table my_table;