У меня есть следующий сценарий:
У меня есть база данных с определенной таблицей MyISAM около 4 миллионов строк. Я использую хранимые процедуры (MySQL версии 5.1) и одну, в частности, для поиска в этих строках по различным критериям. Эта таблица имеет несколько индексов, и запросы через эту хранимую процедуру обычно очень быстрые (<1 с). В основном я использую подготовленный оператор и создаю и выполняю некоторый динамический SQL в этом поиске sp. После выполнения подготовленного оператора я выполняю «DEALLOCATE PREPARED stmt;» </p>
Большинство запросов выполняются менее чем за секунду (я использую LIMIT, чтобы получить только 15 строк в любое время). Однако есть некоторые редкие запросы, которые выполняются дольше (скажем, 2-3 с). Я оптимизировал поисковую таблицу, насколько я могу.
Я разработал веб-приложение, и я могу запустить и увидеть результаты быстрых запросов менее чем за секунду на моей машине для разработки.
Однако, если я открою два экземпляра браузера и выполню одновременный поиск (по машине разработки), один с более длинным запросом, а другой с более быстрым запросом, результаты будут возвращены одновременно, т.е. как если бы быстрый запрос ожидал завершения медленного запроса, прежде чем возвращать результаты. то есть оба запроса займут 2-3 секунды ...
Есть ли причина для этого? Потому что я думал, что MyISAM обрабатывает SELECTS независимо друг от друга, и в настоящее время это не то поведение, которое я испытываю ...
Заранее спасибо!
Тим