【发布时间】:2013-01-25 22:30:03
【问题描述】:
我正在尝试将页面插入到带有排序列的表中,我以这种方式自动递增 2000:
INSERT INTO pages (sort,img_url,thumb_url,name,img_height,plank_id)
SELECT IFNULL(max(sort),0)+2000,'/image/path.jpg','/image/path.jpg','name',1600,'3'
FROM pages WHERE plank_id = '3'
问题是我在上传图片时触发了这些插入,所以这些查询中有 5-10 个几乎同时运行。由于某种原因,这会触发某些文件的死锁。
知道发生了什么吗?
编辑:我正在运行 MySQL 5.5.24 和 InnoDB。排序列有一个索引。
【问题讨论】:
-
出于某种原因?几乎可以肯定是因为选择最大值。
-
排序列有索引吗?
-
你用的是什么关系型数据库?
-
是
sort唯一的 - 可以将其设为自动增量列吗?为什么不存储图像的宽度和高度? -
@MartinSmith 我相信我正在运行 MySQL 5.5.24
标签: mysql sql insert database-deadlocks