Wednesday, December 12, 2007

speedup

postgresql



в последнее время на проекте замечались некислые такие тормоза. они наблюдаются до сих пор, но их количество сильно уменьшено. часть из них, оказывается, была связана с тем, что postgresql по умолчанию настроен так, чтобы запускаться на 200 пентиуме с 128 мегабайтами оперативки. соответственно, даже на минимальных запросах он безбожно тормозит. 10 строк счастья:

max_connections = 5 # на локальной машине мне совсем незачем 20 процессов постгреса
shared_buffers = 32MB # required
max_prepared_transactions = 10 # только если есть prepared transactions и то не уверен что работает так, как нужно
work_mem = 16MB
max_fsm_pages = 204800

random_page_cost = 2.0 # required, сильно ускоряет работу, если у вас быстрый диск
cpu_tuple_cost = 0.001 # required, у нас быстрый процессор и их даже несколько
cpu_index_tuple_cost = 0.0005 # required, как и выше
cpu_operator_cost = 0.00025 # required, как и выше
effective_cache_size = 64MB # required, позволяет использовать кэш операционной системы

berkeleydb



кто-то говорил о том, что берклидб - быстрая? может быть, но в обычном применении в perl, когда ее используют как tie MLDBM+Storable - она просто пиздец какая тормозная.

я тут сравнил скорость tie MLDBM и SQLite, где в SQLite создается табличка из двух колонок. и ужаснулся.

1. SQLite быстрее пишет свои файлы, чем tie свои читает;
2. разница в скорости записи - четыре раза, чтения - почти два раза, размер файла - полтора и все в пользу SQLite;

тест