Re[2]: [pgsql-ru-general] доклад - Mailing list pgsql-ru-general
From | Ivan |
---|---|
Subject | Re[2]: [pgsql-ru-general] доклад |
Date | |
Msg-id | 409814010.20050404131238@mail.ru Whole thread Raw |
In response to | Re: Re[2]: [pgsql-ru-general] доклад (Oleg Bartunov <oleg@sai.msu.su>) |
Responses |
Re: Re[2]: [pgsql-ru-general] доклад
|
List | pgsql-ru-general |
Hello, OB> Прошу еще раз, огласите список, а я вам благодарность обязательно выражу. OB> На что конкретно стоит обратить внимание Буду присылать по мере вспоминания. Для начала - типы. 1) Postgres поддерживает очень много разных типов (явно не все этим могут похвастаться). 2) Ограничения на типы - MSSql поддерживает varchar до 8000 символов, Firebird - до 32Кб (в зависимости от кодировки), Oracle по-моему вообще до 4000 символов (правда здесь я могу ошибаться :) ). bytea - похожая история. Decimal (Numeric) - по-моему также никто такой точности как Postgres не обеспечивает (т.к. у Postgres он вообще безразмерный). Timestamp по-моему также не у всех столь же точный как у Postgres. Поддержка массивов - по-моему не у всех они есть. 3) Наличие очень большого числа встроенных функций, покрывающих большую часть нужд разработчика. (не знаю кто мог бы сравниться с Postgres'ом по этому показателю). 4) Операторы и typecast'ы я что-то тоже не припомню в других СУБД. 5) Ограничения на размеры Некоторые ограничения PostgreSQL Максимальный размер БД Unlimited (во многих других СУБД этот показатель поменьше :) ) Максимальный размер таблицы 32 TB (тоже не все могут) Максимальная длина записи 1.6 TB (тоже самое) Максимальный длина атрибута 1 GB (- // -) Максимальное количество записей в таблице Unlimited (- // -) Максимальное количество атрибутов в таблице 250 - 1600 в зависимости от типа атрибута Максимальное количество индексов на таблицу Unlimited (- // -) А еще есть в некоторых базах есть такие ограничения как размер поля, по которому можно построить индекс (например сейчас в Firebird это 255 байт) - сами понимаете - это бывает очень неудобно :). 6) Запросы. До сих пор не все СУБД умеют вложенные запросы (select from select), insert into table <query>, не у всех есть SAVEPOINT'ы. По-моему Subquery Expressions ANY/SOME, ALL также не у всех. Также не у всех есть такая "куча" всевозможных ALTER <OBJECT>, добавляюяющих гибкость СУБД (напрмер в Firebird для такого рода запросов приходится руками работать с системными таблицами). Не везде есть столько арифметических, стороковых и т.д. операций - в основном есть только +, -, *, /, || а все остальное приходится либо сложными выражениями, либо UDF'ами либо stored procedur'ами. А в Postgres'e (например арифметика): % modulo (remainder) 5 % 4 1 ^ exponentiation 2.0 ^ 3.0 8 |/ square root |/ 25.0 5 ||/ cube root ||/ 27.0 3 ! factorial 5 ! 120 !! factorial (prefix operator) !! 5 120 @ absolute value @ -5.0 5 & bitwise AND 91 & 15 11 | bitwise OR 32 | 3 35 # bitwise XOR 17 # 5 20 ~ bitwise NOT ~1 -2 << bitwise shift left 1 << 4 16 >> bitwise shift right 8 >> 2 2 и так далее с остальными типами - просто рай! :)) Не все умеют и регулярные выражения в SQL запросах. Также очень удобно select <expression> - select без from (правда в Oracle есть select * from DUAL). 7) Monitoring Database Activity - есть также не везде (например в Firebird), а бывает очень полезно! 8) Про правила уже говорили. Фу-ф-фф - пока все что в голову пришло... -- Best regards, Ivan mailto:Ivan-Sun1@mail.ru
pgsql-ru-general by date: