我正在做大约 600 个INSERT ON DUPLICATE KEY UPDATE
查询,其中每个插入可以有一组不同的列。
我现在这样做的方式只是一个带有mysql_query()
. 真的很慢,由于最大执行时间为 30 秒,php 脚本停止了。
我不能使用INSERT INTO table (columns) VALUES (values 1), (values 2), ..., (values n)
,因为每个插入必须能够有一组不同的列。
我还查看了准备好的查询,但从我所见,它似乎也不适用于不同的列集。
我是数据库和 MYSQL 的新手。我只是在拼凑一些东西作为周末项目,现在我只想让项目的最后一部分工作。我很抱歉没有以正确的方式做到这一点。(很抱歉也使用了已弃用的 php mysql 函数。)也许我应该去睡觉,稍后再重写。正确的方法是什么?
编辑:这是有关表格类型的一些信息
-- phpMyAdmin SQL 转储 -- 版本 3.5.1 -- http://www.phpmyadmin.net -- -- 主机:本地主机 -- 生成时间:2012 年 7 月 22 日晚上 9:59 -- 服务器版本:5.5.24-log -- PHP版本:5.3.13 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; -- -- 数据库:`trailerbay` -- -------------------------------------------------- -------- -- -- 表`movies`的表结构 -- 如果不存在“电影”,则创建表( `id` int(11) NOT NULL AUTO_INCREMENT, `imdb` int(7) NOT NULL, `title` 文本整理 utf8_unicode_ci, `releasedate` 日期 DEFAULT NULL, `enlistdate` 日期时间不为空, `runtime` 时间 DEFAULT NULL, `trailer` 文本 COLLATE utf8_unicode_ci NOT NULL, `plot` 文本整理 utf8_unicode_ci, `cover` 文本 COLLATE utf8_unicode_ci NOT NULL, 主键(`id`), 唯一键`id`(`id`), 唯一键 `imdb` (`imdb`) ) 引擎=InnoDB 默认字符集=utf8 排序=utf8_unicode_ci AUTO_INCREMENT=1145 ;