希望你度过美好的一天。我有一个精确的470列表。我正在进行Django单元测试,当我运行命令python manage.py test时测试不会执行错误:
行大小太大(> 8126)。将某些列更改为TEXT或BLOB或使用ROW_FORMAT = DYNAMIC或ROW_FORMAT = COMPRESSED可能会有所帮助。在 当前行格式,768字节的BLOB前缀内联存储
要解决此问题,我正在尝试增加MySQL my.cnf文件中的innodb_page_size
。当我在my.cnf文件中更改值后重启MySQL服务器时,MySQL不会重新启动。
我在stackoverflow上尝试了几乎所有可用的解决方案但没有成功。
MYSQL版本= 5.5.57 Ubuntu版本= 16.04
非常感谢任何帮助。谢谢
答案 0 :(得分:0)
由于我从未见过有人使用过大块大小的功能,所以我没有使用它的经验。我建议你不要第一个尝试。
相反,我提供了几种可能的解决方法。
不要盲目使用VARCHAR(255)
;使所涉数据的长度变得切合实际。
不要将uf8(或utf8mb4)用于只能包含ascii的列。示例:邮政编码,十六进制字符串,UUID,country_code等。使用CHARACTER SET ascii
。
垂直分区表格。这是将它吐成两个具有相同PRIMARY KEY
的表。
不要跨列显示数组;使用另一个表并在其中有多行。示例:phone1,phone2,phone3。