UPDATE `productData`.`productList`
SET `dateLastUpdated` = CURDATE(),
`totalReviews` = 100
WHERE `productList`.`name` = 'FirstchefproUltraSharpDualJuliennePeelerVegetablePeelerStainless';
此查询需要2.93秒,并且只影响一行。
该表长约75k行。我没有太多的SQL经验,有更好的方法吗?更新单行不应该花费这么长时间
我在Ubuntu服务器上使用最新版本的SQL
如果您需要更多信息,请询问,我会将其添加到帖子中。
由于
编辑:
我实际上并不知道SQL和mysql在哪里有不同的东西。选择陈述
SELECT *
FROM `productList`
WHERE `productList`.`name` = 'FirstchefproUltraSharpDualJuliennePeelerVegetablePeelerStainless';
需要2.88秒,所以我猜我的索引存在问题。
编辑:
谢谢你的帮助
当我尝试在名称上创建索引时,它会说:
ERROR 1170 (42000): BLOB/TEXT column 'name' used in key specification without a key length
编辑:
将名称切换为varchar(64)
现在快得多
谢谢大家
答案 0 :(得分:1)
对于此查询:
WHERE
您需要UPDATE `productData`.`productList`
SET `dateLastUpdated` = CURDATE(),
`totalReviews` = 100
WHERE `productList`.`name` = 'FirstchefproUltraSharpDualJuliennePeelerVegetablePeelerStainless';
上的索引:
productList(name)
答案 1 :(得分:0)
WHERE user_id='12345' AND active=1 'AND product_id !=0001 AND product_id !=0002 ' ORDER BY RAND ...
列上创建索引(如某些评论中所述)或name
语句中的索引列,例如如果您的表包含类似的内容,则为产品ID。答案 2 :(得分:-1)
在
上创建索引<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<div ng-app ng-init="k=1;v.direction='positive'">
<div class="tag" ng-class="[{0:'blue1', 1:'blue2', 2:'blue3'}[k], v.direction]">Term</div>
</div>