1: You can view information_schema.index_statistics to view the usage information for the index. You can also use the Pt-index-usage tool to analyze the logs and combine explain to analyze the indexes used.
2:innodb locks the row when it accesses the row, and the index reduces the number of rows InnoDB accesses. thereby reducing the number of locks. But this only works if the InnoDB is able to transition all unneeded rows in the storage engine layer.
If the index has no way to filter out invalid rows, the MySQL server layer can apply a WHERE clause after INNODB retrieves the data and returns it to the server layer. There is no way to avoid locking the line.
InnoDB has locked these lines and will be released at the right time. A later version of 5.1 will not be placed until the server layer finishes executing the where statement, and the previous version will be released when the transaction completes. This can also be from
Explain see extra:using where.
Mysql notes: