MYSQL locking docs tell me that a statement
SELECT * FROM child WHERE id = 100;
would cause a proceeding gap lock if id is a non-unique or non-indexed row. However, this is the syntax for a consistent non-locking select statement. I thought that these statements used their own snapshot and avoided locking. Is the preceding gap lock only applicable during query time? Where am i going wrong?