Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Vadim Mikhailov                      2:5071/11.11   05 Feb 2005  13:09:26
 To : Yuri Chumakov
 Subject : Re: Oracle 9i
 -------------------------------------------------------------------------------- 
 
 
 Суббота Февраль 05 2005 11:58, Vladimir Kurtukov wrote to Yuri Chumakov:
 
  VK>>> главная засада у тебя будет на блокировках,
  YC>> А можно подробнее? В каких именно блокировках?
 
  VK> сразу select и update в одном месте происходить не могут, их
  VK> разделяют блокировками. myisam умеет только table locking, т.е. пока
  VK> идет update, все select-ы на эту таблицу ждут освобождения блокировки.
  VK> и наоборот. InnoDB умеет row locking, то есть ожидание будет только
  VK> на какой-то конкретной записи, а операция с одной записью пройдет явно
  VK> быстрее, соответственно и ожидания будет меньше. в последнем postgress
  VK> приделали какой-то еще более крутой locking...
 
   Hазывается MVCC (Multi Version Concurrency Control) - запись может иметь
 несколько версий. Hапример, кто-то делает SELECT. В постгресе любая операция -
 это транзакция. Так вот все что увидит этот SELECT будет как бы мгновенный
 снимок таблицы на начало этой транзакции (которая потенциально может длиться
 долго). В это время другие транзакции (например INSERT/UPDATE/DELETE) могут тоже
 что-то делать с таблицей. Если получится что другая транзакция должна изменить
 запись которая должна оставаться неизменной с точки зрения еще выполняющейся
 первой транзакции (в других базах данных это была бы блокировка и все связанные
 с этим проблемы), постгрес создаст ещё одну копию (версию) той же самой записи.
 Все последующие транзакции будут видеть только самую последнюю версию этой
 записи от последней завершённой транзакции.
 Таким образом, в постгресе блокировок как таковых нет. И это главная причина
 почему постгрес так хорош при многопользовательском доступе.
 
   В этой статье есть неплохое описание:
 http://www.onlamp.com/pub/a/onlamp/2001/05/25/postgresql_mvcc.html
 
 Ещё полезно почитать документацию:
 http://www.postgresql.org/docs/8.0/interactive/mvcc.html
 
 P.S. Если активность удалений/обновлений очень высокая, надо обязательно
 настроить autovacuum. Разработчики собираются в следующей версии (8.1?) сделать
 autovacuum как часть основного engine, а пока autovacuum daemon или просто
 ночной VACUUM ANALYZE FULL по cron очень желателен.
 
 Bye,
          Vadim
 --- Сидит дед, в 1.1.4.7 шуб одет
  * Origin: California (2:5071/11.11)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Oracle 9i   Eugene Grosbein   02 Feb 2005 01:17:11 
 Re^2: Oracle 9i   Yuri Chumakov   02 Feb 2005 00:55:20 
 Oracle 9i   Slava Alpatov   02 Feb 2005 12:19:35 
 Re: Oracle 9i   Gleb Smirnoff   02 Feb 2005 13:04:13 
 Oracle 9i   Slava Alpatov   03 Feb 2005 15:42:46 
 Re: Oracle 9i   Eugene Grosbein   02 Feb 2005 17:40:17 
 Oracle 9i   Slava Alpatov   03 Feb 2005 14:48:29 
 Re: Oracle 9i   Eugene Grosbein   04 Feb 2005 16:23:41 
 Oracle 9i   Slava Alpatov   07 Feb 2005 12:03:02 
 Re: Oracle 9i   Yuri Chumakov   03 Feb 2005 23:49:32 
 Oracle 9i   Slava Alpatov   04 Feb 2005 15:17:17 
 Oracle 9i   Vladimir Kurtukov   04 Feb 2005 21:10:10 
 Re: Oracle 9i   Yuri Chumakov   05 Feb 2005 05:27:44 
 Oracle 9i   Vladimir Kurtukov   05 Feb 2005 12:58:30 
 Re: Oracle 9i   Yuri Chumakov   05 Feb 2005 12:26:02 
 Re: Oracle 9i   Vadim Mikhailov   05 Feb 2005 13:09:26 
 Re: Oracle 9i   Vadim Mikhailov   04 Feb 2005 10:27:32 
 Re^2: Oracle 9i   Yuri Chumakov   05 Feb 2005 05:35:36 
Архивное /ru.unix.bsd/323342052808.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional