次のような巨大なテーブルがあります。
CREATE TABLE `images` (
`image_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL,
`data` mediumblob,
PRIMARY KEY (`user_id`,`image_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
blob フィールドを圧縮するクエリを実行する必要があります。MySQL は次のクエリでインデックスを使用できますか。
UPDATE images SET data = COMPRESS(data) WHERE (user_id = ? AND image_id = ?) OR (user_id = ? AND image_id = ?) OR (...) OR (...);
単一のクエリでテーブル全体を更新する方法がなく、user_id
.
編集:explain
そしてupdate
うまくいきません、あなたたちはそれを知っていますよね?