MySQL 에서 테이블에 이미 존재하는 값으로 UPDATE SQL 문을 실행한 경우, MySQL 은 이를 감지하여서 값을 수정하지 않는다고 합니다. 아래의 참고자료 웹페이지에 아래와 같이 기술되어 있습니다.
If you set a column to the value it currently has, MySQL notices this and does not update it.
mysql 클라이언트에서 이미 존재하는 값으로 아래와 같이 UPDATE SQL 문을 실행하면 변경된 것이 없다고 표시되는 것 같습니다.
mysql> update test set percent = 29 where type = 1;
Query OK, 0 rows affected (0.01 sec)
Rows matched: 1 Changed: 0 Warnings: 0
그런데... 실제 테이블에 이미 존재하는 값으로 UPDATE SQL 문을 실행해 보면 아래와 같이 디스크 write 를 하는 것 같습니다. 참고로 저는 MySQL 5.5.27 윈도우 버전에서 테스트해 보았습니다.