On Tue, Feb 17, 2004 at 08:35:13AM +0200, Jan Solovjov wrote: JS> также интересует такая штука по PostgresQL как VACUUM - приходиться JS> делать его раз в сутки, честно говоря после использования MySQL который JS> даже при большой нагрузке каши не просит, тут у серьезного SQL сервера JS> такая бяка..
Каши MySQL очень даже просить и команды соответствующие имеет :) А PostgreSQL просто рассчитан на то, что поставить VACUUM ANALYZE в cron труда не составляет, а производительность резко увеличивает. JS> ну и хотелось бы почитать про оптимизацию скорости работы JS> именно самого сервера - что порекомендуете?? а то девелоперы жалуются, JS> что он как-то медленнее, чем MSSQL на одних и тех же задачах. Что-бы JS> покрутить чтобы был он не хуже, если не лучше :) Ну во-первых смотреть postgresql.conf. Например по-умолчанию чаще всего стоит fsync=yes (при наличии UPS'а и если SQL-сервер это отдельная железка, то есть смысл его выключить) -- скорость резко подрастёт. Кроме того в postgresql.conf надо смотреть размеры буферов, там много чего покрутить есть в плане оптимизации. По поводу кода -- его тоже можно (и нужно) оптимизировать под использование с PostgreSQL. Например выбирать правильные типы индексов, использовать транзакции (для цепочек связаных друг с другом изменений в базе). Кроме того есть EXPLAIN ANALYZE, позволяющая увидеть как именно выполняется запрос, тем самым, возможно, увидеть что следует соптимизировать. Далее есть параметры создаваемых таблиц, такие как nooid (это всё нужно читать и понимать, что действительно нужно в этой таблице). У постгреса есть некоторое количество архитектурных особенностей, которые, насколько мне известно, не поправили. Например запрос SELECT COUNT(*) FROM table приводил к fullscan'у (возможно сейчас это поправили), потому как COUNT такая же агрегирующая функция как и SUM с точки зрения постгреса, и ей передаётся _целиком_ таблица в этом примере (насколько мне известно). Их надо просто учитывать (например необходимость в COUNT решается триггером на добавление записи в таблицу и создание отдельной таблицы с этой информацией). -- С уважением, Денис http://freesource.info