首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >长mysql插入查询

问长mysql插入查询
EN

Stack Overflow用户
提问于 2016-01-29 04:36:43
回答 1查看 188关注 0票数 3

这些应该/可以持续多长时间有限制吗?

我现在有一个插入查询。

代码语言:javascript
复制
$insert_sql = "INSERT INTO cards (user_id, deck_id,card_one,card_two,card_three,card_order,temp_id) VALUES";

值

代码语言:javascript
复制
$insert_sql .= "(?,?,?,?,?,?,?)";//int,int,text,text,text,int,int

文本的最大值为5,000个字符。

上述插入值的任何位置都可以从1到1,000不等。

将其分解为单独的查询更好吗?

示例:

代码语言:javascript
复制
$insert_sql = "INSERT INTO cards (user_id, 
deck_id,card_one,card_two,card_three,card_order,temp_id) VALUES   
(?,?,?,?,?,?,?), (?,?,?,?,?,?,?), (?,?,?,?,?,?,?), (?,?,?,?,?,?,?)"
This last part here ^ can have between 1-1000 sets of question marks
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-29 04:44:21

来自MySQL文档

虽然InnoDB在内部支持大于65,535字节的行大小,但MySQL本身对所有列的合并大小施加了65,535行大小的限制。

假设您有8列,每个列包含5000个字符,那么所需的最小内存将为40 it,假设每个字符仅1字节(根据您使用的编码,它可能会更多)。但是,您也可能超过MySQL规定的限制。

我认为您的问题更多的是一个设计问题,特别是您试图将过多的数据塞进单个记录中。您可以考虑通过为单个列或列子集提供自己的单独表来更改您的设计。

关于您的INSERT语句,执行大容量INSERT没有什么问题。一次执行1000个插入(每条记录包含大量数据)的唯一风险是,您可以锁定MySQL数据库引擎,从而阻止其他任何操作。在这种情况下,您可以考虑将INSERT语句分解为小批,并在插入每个批时间隔。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35076973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档