The documentation is not as clear as it should be, but I would say no, mysqlhotcopy does not block SELECT queries.
Here is why
mysqlhotcopy is a Perl script that was originally written and
contributed by Tim Bunce. It uses FLUSH TABLES, LOCK TABLES, and cp or
scp to make a database backup. It is a fast way to make a backup of
the database or single tables, but it can be run only on the same
machine where the database directories are located. mysqlhotcopy works
only for backing up MyISAM and ARCHIVE tables. It runs on Unix and
To use mysqlhotcopy, you must have read access to the files for the
tables that you are backing up, the SELECT privilege for those tables,
the RELOAD privilege (to be able to execute FLUSH TABLES), and the
LOCK TABLES privilege (to be able to lock the tables).
• If you are using tables for a nontransactional storage engine, you
must use LOCK TABLES if you want to ensure that no other session
modifies the tables between a SELECT and an UPDATE. The example shown
here requires LOCK TABLES to execute safely: LOCK TABLES trans READ,
customer WRITE; SELECT SUM(value) FROM trans WHERE
customer_id=some_id; UPDATE customer SET
total_value=sum_from_previous_statement WHERE customer_id=some_id;
UNLOCK TABLES; Without LOCK TABLES, it is possible that another
session might insert a new row in the trans table between execution of
the SELECT and UPDATE statements.
In summary, since mysqlhotcopy launches
SELECT queries are evidently still allowed.