python - 更改 my.cnf 文件中的 innodb_page_size 不会重新启动 mysql 数据库

标签 python mysql django unit-testing innodb

祝您度过愉快的一天。准确地说,我有一个包含 470 列的表。我正在进行 Django 单元测试,当我运行命令 python manage.py test:

时,测试不会执行并给出错误

Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline

为了解决此问题,我尝试增加 MySQL my.cnf 文件中的 innodb_page_size 。当我更改 my.cnf 文件中的值后重新启动 MySQL 服务器时,MySQL 将不会重新启动。

我已经尝试了 stackoverflow 上几乎所有可用的解决方案,但没有成功。

MYSQL版本=5.5.57 Ubuntu 版本 = 16.04

任何帮助将不胜感激。谢谢

最佳答案

由于我从未见过任何人使用具有更大块大小的功能,因此我没有使其工作的经验。我建议您不要成为第一个尝试的人。

相反,我提供了几种可能的解决方法。

不要盲目使用VARCHAR(255);使所涉及的数据的长度切合实际。

不要对只能包含 ascii 的列使用 uf8(或 utf8mb4)。示例:邮政编码、十六进制字符串、UUID、国家/地区代码等。使用 CHARACTER SET ascii

垂直分区表。也就是说,将其分成两个具有相同主键的表。

不要跨列展开数组;使用另一个表并其中有多行。示例:电话 1、电话 2、电话 3。

关于python - 更改 my.cnf 文件中的 innodb_page_size 不会重新启动 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45964972/

相关文章:

python - Python选择ROI OpenCV

javascript - 仅使用 Electron (Atom shell) 和 PHP+mysql 服务器的身份验证表单

MySQL : why is left join slower then inner join? 需要优化帮助

python - 在自定义 Django 管理命令中使用 gevent

python - 保存模型时确保原子性

python - Python 中多处理返回值的快速整形

python - 我想使用 praw 获取 subreddit 中所有时间的热门帖子列表

Python + ffmpeg 类型错误 : not all arguments converted during string formatting

c# - 如何将列表框中列出的产品数量直接减去到我的产品数据库中? (MySQL)

python - 如何将默认值添加到 Django 表单 TextArea?