Там в отсутствии InnoDB нет внешних ключей как средство реляции и соответственно контроля ссылостной целочности. Ну зачем опять рвать баян, ты же все-таки ITшник
MySQL - реляционная БД. InnoDB - реализация транзакций, ссылочной целостности, блокировки строк и т.д. для MySQL
В UBB.threads используются таблицы типа myisam. У этого типа таблиц есть один из нюансов - блокировка на чтение целой таблицы при INSERT'ах. На маленьких таблицах это не так заметно, на больших таблицах это приводит к большим очередям.
В ответ на:
Табличная блокировка обеспечивает возможность одновременного выполнения чтения из таблицы несколькими потоками, но если какой-нибудь поток попробует произвести запись в таблицу, то вначале он должен получить исключительный доступ. Во время обновления таблицы все другие потоки, стремящиеся получить доступ к этой конкретной таблице, будут ожидать, пока данное обновление не будет завершено.
Поскольку обновление обычно считается более важной операцией, чем SELECT, то все команды, производящие обновления таблицы, имеют более высокий приоритет, чем команды извлечения данных. Такой алгоритм гарантирует, что обновления не зависнут в случае, если для некоторой таблицы выполняется большое количество тяжелых запросов
В ответ на: При чтении происходит часто не insert, а update. Что по своей структуре идентичен инсерту.
А зачем при чтении UPDATE? IMHO достаточно будет просто SELECT делать.
update таблицы, где отслеживаются твои сессии (прочтено/непрочтено). update записи с корневым постом ветки для накрутки счетчика просмотров update записи в таблице с форумами для накрутки счетчика просмотров
В ответ на: А при чтении сообщений разве происходит INSERT?
INSERT происходит при писании
Я, собственно, на это и намекал.
да понятно, что при писании просто когда идет SELECT из той таблицы, на которую выполняется INSERT, то он не будет выполняться пока не закончится INSERT -> очереди и т.д.