PostgreSQL

Intellect Board — cистема управления сайтом

Построение сайта на основе форума

Intellect Board — cистема управления сайтом »   Техническая поддержка версии 2.18 »   PostgreSQL
RSS

PostgreSQL

Текущий рейтинг темы: Нет
Выводить сообщения
Правила раздела

<<Назад  Вперед>>Страницы: 1 2 3 4 5 ... 12 13 14 15 16 17 18
Модераторы: aerograf, wsx
Печать
 
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
Исправления внес, дистрибутив выложил. Если все будет Ok, то в ближайшее время выложу еще UTF-8 версию...

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
Когда перетаскивал базу с MySQL для тестирования на PostgreSQL, написал такой скриптик (Perl) для конвертации backup-файла в формат Postgre (для залива в свежеустановленный форум):#!/usr/bin/perl
unless(@ARGV){die "Usage: intb_my2pg.pl backup_file prefix \n";}
$file=$ARGV[0];
$prefix=$ARGV[1];
if(! -r $file || ! -w $file){print "$file: access denied\n";}
   else{
       open(F,"+<$file")|| die "Cannot open $file $!\n";
        binmode(F) || die "Cannot binmode $file $!\n";
        @D=<F>;
        seek(F,0,0);
        print F "TRUNCATE ",$prefix,"forumtype;\n";
        print F "TRUNCATE ",$prefix,"userlevel;\n";
        print F "TRUNCATE ",$prefix,"language;\n";
        foreach(@D){
        s/^[^I].+\n//s;
        s/^\n//s;
        s/^INSERT INTO \w+_Addon.+\n//s;
        s/^INSERT INTO \w+_AdminEntry.+\n//s;
        s/^INSERT INTO \w+_StyleSet.+\n//s;
        s/^INSERT INTO \w+_User VALUES \(\"[1-3]\".+\n//s;
        s/^(INSERT INTO )(\w+_)(.+)/\1$prefix\3/s;
        s/(?<!\\)\"/\'/g;
        s/\\\",\'/\\\',\'/g;
         print F;
        }
        truncate(F,tell(F));
close(F);
}
После залива данных в базу нужно переустановить дополнительные стили.
Если это переложить на php, можно при выборе PosgreSQL в install.php добавить пункт для восстановления базы из архива MySQL
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
Сегодня наконец перевёл "боевой" форум на PostgreSQL (FreeBSD 6.1, Apache 2.0.55, PosgtreSQL 8.1.3). Пока полет нормальный...
wsx
Модератор форума

wsx
Всего сообщений: 256
Рейтинг пользователя: 12

Репутация пользователя: 2

Ссылка


Дата регистрации на форуме:
14 янв. 2005
-KoT-
Оффтопик: А почему Апач второй ? ИМХО он тежелее первого, а первый пока ещё устраивает вроде как всех...

---
Не всё так просто, как на самом деле!
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
wsx
Оффтопик: Более эффективная работа с памятью, фильтрующие модули, PCRE. Нормальная работа SSL, поддержка LDAP (у меня на Апаче не только форум крутится, но и выполняются более другие задачи). Личные предпочтения в конце концов...
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
В функцию db_backup() попала "копи-паст" ошибка - вместо      $row[$i]=str_replace("\n","\\n",mysql_real_escape_string($row[$i])); должно быть     $row[$i]=str_replace("\n","\\n",pg_escape_string($row[$i])); Сразу не заметил, потому что на тестовом сервере помимо PostgreSQL стоял и MySQL, который и обрабатывал mysql_real_escape_string().
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
Почти месяц форум крутится на PostgreSQL — устойчиво, без глюков. Как ни странно — заметно быстрее, чем на MySQL, хотя усилия по оптимизации SQL-сервера были незначительны. Устойчивость на высоте — сказывается железобетонная надежность Postgre.
К коду форума в отношении PostgreSQL претензий тоже нет — за все время обнаружена только одна ошибка — обнуление количества сообщений участников при пересчете статистики, вылечилось заменой $sql = "INSERT INTO ".$GLOBALS['DBprefix']."UserStat SET uid=".$udata['p_uid'].", fid=".$udata['t_fid'].", us_count=".$udata['ucount']; на $sql = "INSERT INTO ".$GLOBALS['DBprefix']."UserStat (uid,fid,us_count) VALUES (".$udata['p_uid'].",".$udata['t_fid'].",".$udata['ucount'].")"; в файле /admin/stats.php, строка 427.


IMHO, связка IntB-PostgreSQL является предпочтительной при наличии своего сервера (например, локальная, кампусная сеть и т.п.)
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001

-KoT- написал:
[q]
Как ни странно — заметно быстрее, чем на MySQL, хотя усилия по оптимизации SQL-сервера были незначительны.
[/q]

Странного тут ничего нет — в PostgreSQL используется блокировка на уровне строк, а не таблиц, за счет чего и происходит такое ускорение. Это происходит от того, что в IntB активно используются запросы, связывающие по несколько таблиц сразу, при которых из каждой таблицы берется одна запись (особенно большая нагрузка приходится на таблицу prefix_User).

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
Думается, что дело не в row-level lock — SELECT'ы её не используют (за исключением SELECT FOR UPDATE), кроме того, ускорение наблюдается и в отсутствии конкурирующих сессий. Скорее всего дело в более "умном" планировщике запросов — он эффективнее работает с индексами, при необходимости преобразует их в битовые маски, сканирование которых идёт гораздо быстрее — что в силу специфики IntB:

XXXX Pro написал:
[q]
в IntB активно используются запросы, связывающие по несколько таблиц сразу, при которых из каждой таблицы берется одна запись
[/q]
и дает заметный прирост производительности

P.S. Всё это говорит о том, что в базе IntB весьма удачно спланированы индексы
wsx
Модератор форума

wsx
Всего сообщений: 256
Рейтинг пользователя: 12

Репутация пользователя: 2

Ссылка


Дата регистрации на форуме:
14 янв. 2005
Так же наверное стоит отметить, что постгрес более грамотными людьми писался :) Всё таки Берклийский продукт, а это уже что-то значит. Что касается производительности то пожалуй у постгреса есть два минуса. Он медленнее работает с Апдейтами (UPDATE) и его ахилесова пята - select count(*) from table;

з.ы. Кто нить видел Makefile от MySQL ? Товарищь говорит, что там есть параметр -O9 :))))

p.s.s: Так же для оптимизации Постгреса советую в postgresql.conf (который находится в дата директории) изменить fsync =on на fsync = false. (именно false, почему - не знаю). тогда Данные будут сюнкаться с ФС только по оканчании транзакции, а не постоянно.

---
Не всё так просто, как на самом деле!
<<Назад  Вперед>>Страницы: 1 2 3 4 5 ... 12 13 14 15 16 17 18
Модераторы: aerograf, wsx
Печать
Intellect Board — cистема управления сайтом »   Техническая поддержка версии 2.18 »   PostgreSQL
RSS

1 посетитель просмотрел эту тему за последние 10 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
Ограничение доступа
не отображаются разделы
Архив версий
Установка стиля на Intellect Board 2.22
Завершилась работа над новой версией 3.00

Самые активные 5 тем RSS


Время выполнения скрипта: 0.0647. Количество выполненных запросов: 17, время выполнения запросов 0.0000
Creative Commons License Rambler's Top100 Rambler's Top100 Рейтинг@Mail.ru Valid HTML 4.01 Transitional Valid CSS!