我正在使用以下查询来更新表格中的字段
body {
/* Better Font Rendering */
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
但是,LOAD DATA LOCAL INFILE '$_file'
REPLACE INTO TABLE test_db.productsinfo
FIELDS TERMINATED BY '\,'
OPTIONALLY ENCLOSED BY '\"'
IGNORE 1 LINES
(\`products_id\`,
\`products_source\`,
\`quantity\`,
\`cost\
)
会删除整行并添加一个新行,这不是我需要的更新类型。
不幸的是,由于速度问题我无法使用临时表。
在这种情况下,有没有实现REPLACE
的功能?
答案 0 :(得分:1)
评论太长了。
如果您需要对数据库中的表进行实时更新,那么SQL会有一个名为UPDATE
的漂亮语句。严肃地说,如果速度是主要考虑因素,那么你应该明确地更新 ,而不是通过文件传递值。
您的应用程序已花费时间将数据放入文件中并且(可能)等待对文件的写入完成。将数据加载到update
表中的额外时间只是“创建文件”过程的一部分。
可能有办法加快更新速度。例如,在加载到临时文件后,在toupdate(product_id)
上创建索引。这应该加快对表单的查询:
update products p join
toupdate
on p.product_id = toupdate.product_id
. . .