Обсуждение статьи тематического каталога: О грамотном использовании БД MySQL (mysql)Ссылка на текст статьи: http://www.opennet.me/base/dev/mysql_use.txt.html
как узнать мой БД MySQL?
"Операция UPDATE идет в три этапа: поиск того, что будете менять, затем
запись данных, обновление индексов. При этом, чем больше таблица, тем
дольше поиск. Если есть индексы, то операция кешируется и выполняется
достаточно быстро. Но сам процесс очень емкий. И только дурак не
догонит, что большая таблица со множеством индексов и записей, будет
тормозить при UPDATE. INSERT же выполняется одним залпом, очень
быстро."Вото с этим блоком не могу согласится.
Хм... а при Insert что, индекс не обновляется? Это что-то новое. В том то и дело, что все как-раз наоборот работает в описанной ситуации. В такой таблице есть индекс по id (может быть и по другим полям) а поле-счетчик естественно никто не индексирует и при insert сначала субд надо записать данные, а потом еще и как минимум обновить индекс по id. Когда же идет update, то происходит поиск по индексу id (это довольно быстро) и инкремент поля-счетчика, индекс не трогается, т.к. поле-счетчик в нем не присутствует.
Ещё хотел сказать, что стоит для таблиц, где накручивается счетчик просмотров, использовать тип InnoBD. Тогда не будет блокировок таблицы, блокироваться будут только обновляемые записи и это, не смотря на более долгую работу select в таких таблицах, даст общий выигрыш в работе с ними.