searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

MYSQL规范为什么建议对大字段分表处理?

2024-09-10 09:23:26
7
0

一、MYSQL规范大字段的建议

一般来说,MYSQL的开发规范中,会对大字段有拆分的建议,比如:

text字段的,最好请分表。(本质上说,不是MySQL不适合存储text,而是在太多的情况下我们期望MySQL能够更加高效的提供小数据查询/事务处理)

 

常见字段类型(一般不允许用textblob),若必须使用则拆分到单独的表

 

WHY?我们通过实操验证看看为什么会有这条规范

实操验证:

1、 建表

create table cygtest9(id int primary key,age int,name text);

 

2、 插数据

 

 

Insert into cygtest9 values(1,28,'dskjdojwoejohdohdohgosjdijsdniiwwewew');

 

Insert into cygtest9 values(2,32,'dskjdojwoejohdohdohgosjdijsdniiwdswewew');

 

3、 UPDATE

Update cygtest9 set age=age+1 where id=2;

 

4、 查看BINLOG

 

 

 

、总结

不分表,会什么后果

 

BINLOG以看到,BINLOW ROW FORMAT时候,UPDATE个字段要记录整行。生产环境经有一张大表,有TEXT字段,而且常有UPDATE实际上UPDATE并不是TEXT段,而仅仅是4字节的SHORT INTBINLOG依然是整行数据记录,造成大量的磁盘IO磁盘空间的浪费

0条评论
0 / 1000
c****n
5文章数
0粉丝数
c****n
5 文章 | 0 粉丝
原创

MYSQL规范为什么建议对大字段分表处理?

2024-09-10 09:23:26
7
0

一、MYSQL规范大字段的建议

一般来说,MYSQL的开发规范中,会对大字段有拆分的建议,比如:

text字段的,最好请分表。(本质上说,不是MySQL不适合存储text,而是在太多的情况下我们期望MySQL能够更加高效的提供小数据查询/事务处理)

 

常见字段类型(一般不允许用textblob),若必须使用则拆分到单独的表

 

WHY?我们通过实操验证看看为什么会有这条规范

实操验证:

1、 建表

create table cygtest9(id int primary key,age int,name text);

 

2、 插数据

 

 

Insert into cygtest9 values(1,28,'dskjdojwoejohdohdohgosjdijsdniiwwewew');

 

Insert into cygtest9 values(2,32,'dskjdojwoejohdohdohgosjdijsdniiwdswewew');

 

3、 UPDATE

Update cygtest9 set age=age+1 where id=2;

 

4、 查看BINLOG

 

 

 

、总结

不分表,会什么后果

 

BINLOG以看到,BINLOW ROW FORMAT时候,UPDATE个字段要记录整行。生产环境经有一张大表,有TEXT字段,而且常有UPDATE实际上UPDATE并不是TEXT段,而仅仅是4字节的SHORT INTBINLOG依然是整行数据记录,造成大量的磁盘IO磁盘空间的浪费

文章来自个人专栏
cygwing专栏
5 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0