Как альтернатива веб-сервисам, можно использовать помещенный вызов документа от API RPC FrontPage. Это обладает дополнительным преимуществом того, чтобы позволять Вам обеспечить метаданные (столбцы) в том же запросе как данные файла. Очевидный недостаток состоит в том, что протокол немного более неясен (по сравнению с очень хорошо зарегистрированными веб-сервисами).
Для эталонного приложения, которое объясняет использование Размещенного на первой полосе RPC, посмотрите проект SharePad на CodePlex.
В настоящее время поддержка некоторых локалей [ docs ] может быть установлена только во время initdb, но я думаю, что тот, который имеет отношение к _pattern_ops
, можно изменить с помощью SET во время выполнения, LC_COLLATE. Чтобы увидеть установленные значения, вы можете использовать команду SHOW .
Например:
SHOW LC_COLLATE
_pattern_ops
индексы полезны в столбцах, которые используют конструкции сопоставления с образцом, например LIKE
или регулярные выражения. Вам все равно нужно создать обычный индекс (без _pattern_ops
), чтобы выполнить поиск равенства по индексу. Поэтому вы должны принять все это во внимание, чтобы увидеть, нужны ли вам такие индексы в ваших таблицах.
Что такое locale , это набор правил о порядке символов, форматировании и подобных вещах, которые варьируются от язык / страну на другой язык / страну. Например, локаль fr_CA (французский в Канаде) может иметь некоторые другие правила сортировки (или способ отображения чисел и т. Д.), Чем en_CA (английский в Канаде). Стандартный языковой стандарт «C» - это языковой стандарт по умолчанию, соответствующий стандартам POSIX. Допустимы только строгие символы ASCII, а правила упорядочивания и форматирования в основном соответствуют правилам en_US (американский английский)
. В вычислениях языковой стандарт - это набор параметры, определяющие пользователя язык, страна и любые специальные вариант предпочтений, которые пользователь хочет видеть в своем пользовательском интерфейсе. Обычно идентификатор локали состоит из хотя бы идентификатора языка и идентификатор региона.
If you've got the option...
You could recreate the database cluster with the C locale.
You need to pass the locale to initdb when initializing your Postgres instance.
You can do this regardless of what the server's default or user's locale is.
That's a server administration command though, not a database schema designers task. The cluster contains all the databases on the server, not just the one you're optimising.
It creates a brand new cluster, and does not migrate any of your existing databases or data. That'd be additional work.
Furthermore, if you're in a position where you can consider creating a new cluster as an option, you really should be considering using PostgreSQL 8.4 instead, which can have per-database locales, specified in the CREATE DATABASE statement.
psql -l
согласно руководству
пример вывода:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+--------+----------+-------------+-------------+-------------------
packrd | packrd | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | packrd | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | packrd | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/packrd +
| | | | | packrd=CTc/packrd
template1 | packrd | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/packrd +
| | | | | packrd=CTc/packrd
(5 rows)