【发布时间】:2020-07-07 14:59:36
【问题描述】:
在使用 Laravel 5.8 开发的项目时,我想创建一个包含 100 多列的表的数据库(表迁移)。所以我遇到了这个错误:
Illuminate \ Database \ QueryException: SQLSTATE [42000]: 语法 错误或访问冲突:1118 行大小太大。最大行 所用表类型的大小(不包括 BLOB)为 65535。这 包括存储开销,请查看手册。你必须改变一些 TEXT 或 BLOB 的列
据我了解,MySql 不能在一个表中包含尽可能多的列。
因此,我的问题是:这个问题有解决方案吗?
【问题讨论】:
-
这里已经回答了一些类似/相关的问题:stackoverflow.com/questions/10349361/… 但是,在您的情况下,您似乎只有很多字段。我认为一个表没有理由拥有这么多字段。我建议分析您的数据并将相关字段分解为子表。它使以后分析数据变得更加容易,并且避免了每次您只需要与主记录相关的数据子集时都必须查询整个数据。
-
其实不是列数的问题……而是列的大小……
-
什么是列数据类型?也许您可以使用紧凑字段类型来缩小行大小
标签: mysql database laravel create-table