Я думаю, что у меня есть общее понимание этого, но я надеюсь, что кто-то может дать мне более подробную информацию, поскольку мне интересно узнать больше о производительности базы данных.
Предположим, что у меня очень большая база данных с множеством миллионов записей, база данных поддерживает множество соединений. Выполнение простых запросов в базе данных будет медленным, так как есть так много данных. Я пытаюсь понять, когда запрос по данному соединению начинает оказывать непосредственное влияние на производительность запросов, запущенных в других соединениях.
Если одно соединение блокирует некоторые элементы, я понимаю, что это задержит запросы, запускающие другие соединения, которые нуждаются в этих элементах. Например:
SELECT FOR UPDATE
заблокирует то, что вы выбираете.
Что происходит, когда вы делаете что-то простое:
SELECT COUNT(*) FROM myTable
позволяет сказать, что у нас есть таблица с миллиардом строк, поэтому запуск счетчика займет некоторое время (работает на innodb). Будет ли это влиять на запросы, запущенные на других подключениях?
Что делать, если вы выбрали большой объем данных с помощью SELECT и JOIN, например:
SELECT * FROM myTable1 JOIN myTable2 ON myTable1.id = myTable2.id;
имеет блокировку соединения для других запросов?
Мне сложно понять, какие запросы будут иметь прямое влияние на производительность запросов, запущенных на других подключениях.
Спасибо