URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 39558
[ Назад ]

Исходное сообщение
"Тематический каталог: О грамотном использовании БД MySQL (mysql)"

Отправлено auto_topic , 26-Дек-07 23:24 
Обсуждение статьи тематического каталога: О грамотном использовании БД MySQL (mysql)

Ссылка на текст статьи: http://www.opennet.me/base/dev/mysql_use.txt.html


Содержание

Сообщения в этом обсуждении
"О грамотном использовании БД MySQL (mysql)"
Отправлено LiS , 26-Дек-07 23:24 
как узнать мой БД MySQL?

"О грамотном использовании БД MySQL (mysql)"
Отправлено Алексей , 22-Сен-11 13:59 
"Операция UPDATE идет в три этапа: поиск того, что будете менять, затем
   запись данных, обновление индексов. При этом, чем больше таблица, тем
   дольше поиск. Если есть индексы, то операция кешируется и выполняется
   достаточно быстро. Но сам процесс очень емкий. И только дурак не
   догонит, что большая таблица со множеством индексов и записей, будет
   тормозить при UPDATE. INSERT же выполняется одним залпом, очень
   быстро."

Вото с этим блоком не могу согласится.
Хм... а при Insert что, индекс не обновляется? Это что-то новое. В том то и дело, что все как-раз наоборот работает в описанной ситуации. В такой таблице есть индекс по id (может быть и по другим полям) а поле-счетчик естественно никто не индексирует и при insert сначала субд надо записать данные, а потом еще и как минимум обновить индекс по id. Когда же идет update, то происходит поиск по индексу id (это довольно быстро) и инкремент поля-счетчика, индекс не трогается, т.к. поле-счетчик в нем не присутствует.
Ещё хотел сказать, что стоит для таблиц, где накручивается счетчик просмотров, использовать тип InnoBD. Тогда не будет блокировок таблицы, блокироваться будут только обновляемые записи и это, не смотря на более долгую работу select в таких таблицах, даст общий выигрыш в работе с ними.