我有一个很大的MySQL照片表,甚至还有全文索引,正常索引和其他性能技巧,我发现我的查询速度有点慢(糟糕的MySQL全文)。
我有两个字段,一个叫做'caption',另一个叫'shortCaption'。 'caption'字段包含500,000行数据,长度在150到2000个字符之间,新的'shortCaption'字段为空。
我的“标题”字段中的可搜索信息大部分位于前300个字符中,因此为了加快我的全文查询,我想要一个仅包含前300个字符的“shortCaption”字段,减少工作量我的数据库/查询。
在一个查询中,是否有办法迭代每张照片记录,抓取前300个字符(长度(字段,300))并使用较短版本更新新字段?我正准备编写一个处理此问题的服务器端脚本,但很想知道它是否可以完全用SQL来完成,因为它会更快。
提前致谢。
答案 0 :(得分:3)
UPDATE tablename SET newfield = LEFT(oldfield, 300)
此查询将更新tablename
答案 1 :(得分:1)
可以尝试这样的事情:
UPDATE table
SET new_column = left(old_column, 300);
我对我的一个测试表进行了测试,但它确实有效。只要知道查询将花费一些时间来执行超过500K行。
答案 2 :(得分:1)
UPDATE table1
SET column1 = LEFT( column2, 300 )