1. update nucaeb.message set PUBLISHED = :0 where ID IN ( :1,:2,:3,:4.... :320); UPDATE nucaeb.message SET published = # WHERE ID in ( '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', ...; 2. SELECT * FROM nucaeb.message USE INDEX(message_published_idx) WHERE published = # ORDER BY ID ASC limit #; 3. SELECT ifnull(min(A.HEADERS), '#') AS header, ifnull( UNIX_TIMESTAMP(min(A.creation_time)), UNIX_TIMESTAMP(SYSDATE()) ) AS cdc_unpublished_timecheck, '#' AS '#' FROM nucaeb.message A WHERE A.ID = ( SELECT MIN(B.ID) FROM nucaeb.message B WHERE B.PUBLISHED = # )