В зависимости от типа таблицы блокировка будет выполняться по-разному, но также будет учитываться значение SELECT. Для таблиц MyISAM простая таблица SELECT count (*) FROM не должна блокировать таблицу, поскольку она обращается к метаданным для получения количества записей. Innodb будет занимать больше времени, поскольку для подсчета записей ему нужно захватить таблицу в моментальном снимке, но это не должно вызывать блокировку.
Вы должны по крайней мере установить concurrent_insert в 1 (по умолчанию). Затем, если в файле данных нет «пробелов» для заполнения таблицы, вставки будут добавлены к файлу, и SELECT и INSERT могут происходить одновременно с таблицами MyISAM. Обратите внимание, что удаление записи создает «пробел» в файле данных, который попытается заполнить будущими вставками и обновлениями.
Если вы редко удаляете записи, вы можете установить concurrent_insert равным 2, и вставки всегда будут добавляться в конец файла данных. Тогда выбор и вставка могут происходить одновременно, но ваш файл данных никогда не станет меньше, независимо от того, сколько записей вы удаляете (кроме всех записей).
Суть в том, что если у вас много обновлений, вставок и выборок в таблицу, вы должны сделать это InnoDB. Вы можете свободно смешивать типы таблиц в системе.