【发布时间】:2010-06-09 05:18:16
【问题描述】:
我正在编写一个应用程序,我正在使用 MySQL 作为 DBMS,我们正在下载房产报价,但存在一些性能问题。旧架构如下所示: 属性已更新。如果受影响的行数不是 1,则认为更新不成功,否则更新查询解决了我们的问题。 如果更新不成功,并且受影响的行数超过 1,我们有重复,我们将它们全部删除。如果更新不成功,我们删除重复项后,会发生插入。此架构运行良好,但存在一些速度问题,因为如果属性在 15 天内未更新,则会被删除。 从理论上讲,主要问题是删除属性,因为有些属性可以存活数月,而且索引之间的距离很远(我们说的是 500、000 多个属性)。
我们的主人告诉我使用替换成而不是删除属性,并且所有不推荐使用的属性都应该被视为 DEAD。我已经这样做了,但是由于语法错误而开始出现问题,而且我在任何地方都找不到用 where 子句替换的示例(我想用新属性替换 DEAD 属性而不是删除旧的属性并插入一个新的以确保优化)。我的查询如下所示:
replace into table_name(column1, ..., columnn) values(value1, ..., valuen) where ID = idValue
当然,我已经计算了 idValue 并处理了所有事情,但我遇到了语法错误。我想知道我是否错了,并且有一个 where 子句可以替换成。
我找到了一个替代解决方案,它甚至比替换成(仅使用更新查询)更好,因为如果我使用替换成,删除就会在幕后发生,但我想知道我是否错了我说 replace into 没有 where 子句。如需更多参考,请参阅此链接:
http://dev.mysql.com/doc/refman/5.0/en/replace.html
提前感谢您的回答, 拉霍斯阿尔帕德
【问题讨论】:
标签: mysql