Mysql 报Row size too large 65535 的原因及解决方法

当我们在 MySQL 中创建一张数据表时,如果某个字段的数据类型是 text 或 blob,那么在该表的行的最大大小不能大于 65535 字节,否则就会报 "Row size too large" 的错误。

这个错误的原因是,MySQL 默认的 InnoDB 存储引擎的单行限制大小为 65535 字节,如果一条记录长度超过了这个值,则 MySQL 就无法存储这条记录。

解决这个问题的方法有以下三种:

1. 将表的类型换成 MyISAM

MyISAM 存储引擎类型的表单行限制大小是 65536 字节,可将表的类型更改为 MyISAM,以达成错误消除的目的。

ALTER TABLE `table_name` ENGINE = MyISAM;

2. 调整字段类型

通过调整表中的字段类型来减少记录长度。

示例 1:将 text 类型的字段修改成 varchar 类型的字段,这样可以占用更少空间,同时避免了 "Row size too large" 的错误。

ALTER TABLE `table_name` MODIFY `text_col` VARCHAR(2048);

示例 2:将 BLOB 类型的字段修改成 MEDIUMBLOB 类型的字段,这样可以缩小字段的长度,使其符合单行大小限制要求:

ALTER TABLE `table_name` MODIFY `blob_col` MEDIUMBLOB;

3. 将数据拆分成多个字段或表

如果单行大小超过了 65535 字节,可以考虑将原数据表拆分成多张表或多个字段。例如,将一个大的 text 字段拆分成多个 text 字段,或将一个大的数据库表分割成多个表。

示例:将数据表中的字段分成两张表:

CREATE TABLE `table_name_1` (
  `id` INT(11) PRIMARY KEY AUTO_INCREMENT,
  `col1` TEXT,
  `col2` TEXT
);

CREATE TABLE `table_name_2` (
  `id` INT(11) PRIMARY KEY AUTO_INCREMENT,
  `col3` TEXT,
  `col4` TEXT
);

以上是解决 "Row size too large" 的错误的几种方法,我们可以根据具体情况选择合适的方法进行处理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql 报Row size too large 65535 的原因及解决方法 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • MySQL Server Configuration

    ProxySQL主要是通过mysql_servers来配置MySQL servers,有时候可能会用到mysql_replication_hostgroups 备注:在读下面内容之前,确保理解multi-layer configuration system,或者看我前面的文章 注意: 更新mysql_servers 和mysql_replication_ho…

    MySQL 2023年4月13日
    00
  • mysql 5.7.14 安装配置简单教程

    MySQL 5.7.14 安装配置简单教程 MySQL 是一种常用的关系型数据库管理系统,安装配置十分重要。下面是 MySQL 5.7.14 的安装配置教程。 步骤一:下载安装包 从 MySQL 官网 下载 MySQL 5.7.14 安装包,并将其解压缩到指定目录。 步骤二:配置 MySQL 1. 修改配置文件 启动 MySQL 之前,需要修改 MySQL …

    MySQL 2023年5月18日
    00
  • mysql安装不上怎么办 mysql安装失败原因和解决方法

    MySQL是一种广泛使用的关系型数据库管理系统,在使用过程中可能会发生安装失败的情况,下面我们来详细讲解MySQL安装失败的原因以及可能的解决方法。 1. 安装失败原因 MySQL安装失败可能是由多种因素导致的,如下所述: 操作系统版本不兼容 安装文件损坏 安装包版本不匹配 系统缺失必要的依赖库 端口被占用等其他原因 2. 解决方法 2.1 操作系统版本不兼…

    MySQL 2023年5月18日
    00
  • 第06章 索引的数据结构

    1. 为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则通过索引查找相关数据,如果不符合则需要全表扫描,即需要一条一条地查找记录,直到找到与条件符合的记录。 如上图所示,数据库…

    MySQL 2023年4月17日
    00
  • MySQL之Join语句执行流程是什么

    本文小编为大家详细介绍“MySQL之Join语句执行流程是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL之Join语句执行流程是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 Join语句执行流程 在实际生产中,关于 join 语句使用的问题,一般会集中在以下两类: 不让使用 join,使用 join 有什么问…

    MySQL 2023年4月11日
    00
  • 一天吃透MySQL面试八股文

    什么是MySQL MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。 数据库的三大范式 第一范式1NF 确保数据库表字段的原子性。 比如字段 userInfo: 广东省 10086′ …

    MySQL 2023年4月14日
    00
  • MySQL 索引优化案例

    MySQL是一个非常流行的关系型数据库管理系统,MySQL索引优化是MySQL性能优化的重要部分。在本文中,我们将详细讲解MySQL索引优化的完整攻略,并提供两个示例说明。 什么是索引 在MySQL中,索引是一种数据结构,用于提高查询查询速度。索引是一种特殊的表(B-Tree)数据结构,用于加速数据的查找和排序。在MySQL中,索引可以分为唯一和非唯一索引。…

    MySQL 2023年5月19日
    00
  • 如何使用myisamchk和mysqlcheck工具快速修复损坏的MySQL数据库文件

    修复MySQL数据库文件是数据库维护的一个重要工作,常用的修复工具包括myisamchk和mysqlcheck。本文将介绍如何使用这两款工具操作MySQL数据库文件的修复过程。 1. 使用myisamchk修复MySQL数据库文件 myisamchk是一个MySQL的命令行工具,用于修复和检查MyISAM表。该工具可以删除损坏的记录、重建索引、删除没用的索引…

    MySQL 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部