这些应该/可以持续多长时间有限制吗?
我现在有一个插入查询。
$insert_sql = "INSERT INTO cards (user_id, deck_id,card_one,card_two,card_three,card_order,temp_id) VALUES";值
$insert_sql .= "(?,?,?,?,?,?,?)";//int,int,text,text,text,int,int文本的最大值为5,000个字符。
上述插入值的任何位置都可以从1到1,000不等。
将其分解为单独的查询更好吗?
示例:
$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发布于 2016-01-29 04:44:21
来自MySQL文档
虽然InnoDB在内部支持大于65,535字节的行大小,但MySQL本身对所有列的合并大小施加了65,535行大小的限制。
假设您有8列,每个列包含5000个字符,那么所需的最小内存将为40 it,假设每个字符仅1字节(根据您使用的编码,它可能会更多)。但是,您也可能超过MySQL规定的限制。
我认为您的问题更多的是一个设计问题,特别是您试图将过多的数据塞进单个记录中。您可以考虑通过为单个列或列子集提供自己的单独表来更改您的设计。
关于您的INSERT语句,执行大容量INSERT没有什么问题。一次执行1000个插入(每条记录包含大量数据)的唯一风险是,您可以锁定MySQL数据库引擎,从而阻止其他任何操作。在这种情况下,您可以考虑将INSERT语句分解为小批,并在插入每个批时间隔。
https://stackoverflow.com/questions/35076973
复制相似问题