Commit 246be304 authored by Bruce Momjian's avatar Bruce Momjian

Add mention of performance impact on LIKE of non-C locales.

parent a2a5526e
<!-- $PostgreSQL: pgsql/doc/src/sgml/charset.sgml,v 2.47 2004/12/27 22:30:10 tgl Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/charset.sgml,v 2.48 2005/01/04 00:05:44 momjian Exp $ -->
<chapter id="charset">
<title>Localization</>
......@@ -189,10 +189,10 @@ initdb --locale=sv_SE
</sect2>
<sect2>
<title>Benefits</>
<title>Behavior</>
<para>
Locale support influences in particular the following features:
Locale support influences the following features:
<itemizedlist>
<listitem>
......@@ -202,6 +202,13 @@ initdb --locale=sv_SE
</para>
</listitem>
<listitem>
<para>
The ability to use indexes with <literal>LIKE</> clauses
<indexterm><primary>LIKE</><secondary>and locales</></indexterm>
</para>
</listitem>
<listitem>
<para>
The <function>to_char</> family of functions
......@@ -211,9 +218,11 @@ initdb --locale=sv_SE
</para>
<para>
The only severe drawback of using the locale support in
<productname>PostgreSQL</> is its speed. So use locales only if
you actually need them.
The drawback of using locales other than <literal>C</> or
<literal>POSIX</> in <productname>PostgreSQL</> is its performance
impact. It slows character handling and prevents ordinary indexes
from being used by <literal>LIKE</>. For this reason use locales
only if you actually need them.
</para>
</sect2>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/initdb.sgml,v 1.32 2004/08/01 06:19:18 momjian Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/initdb.sgml,v 1.33 2005/01/04 00:05:45 momjian Exp $
PostgreSQL documentation
-->
......@@ -54,21 +54,22 @@ PostgreSQL documentation
</para>
<para>
<command>initdb</command> initializes the database cluster's
default locale and character set encoding. Some locale categories
are fixed for the lifetime of the cluster, so it is important to
make the right choice when running <command>initdb</command>.
Other locale categories can be changed later when the server is
started. <command>initdb</command> will write those locale
settings into the <filename>postgresql.conf</filename>
configuration file so they are the default, but they can be changed
by editing that file. To set the locale that
<command>initdb</command> uses, see the description of the
<option>--locale</option> option. The character set encoding can
<command>initdb</command> initializes the database cluster's default
locale and character set encoding. Some locale categories are fixed
for the lifetime of the cluster. There is also a performance impact
in using locales other than <literal>C</> or <literal>POSIX</>.
Therefore it is important to make the right choice when running
<command>initdb</command>. Other locale categories can be changed
later when the server is started. <command>initdb</command> will
write those locale settings into the
<filename>postgresql.conf</filename> configuration file so they are
the default, but they can be changed by editing that file. To set the
locale that <command>initdb</command> uses, see the description of
the <option>--locale</option> option. The character set encoding can
be set separately for each database as it is created.
<command>initdb</command> determines the encoding for the
<literal>template1</literal> database, which will serve as the
default for all other databases. To alter the default encoding use
default for all other databases. To alter the default encoding use
the <option>--encoding</option> option.
</para>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.299 2004/12/26 23:06:56 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.300 2005/01/04 00:05:44 momjian Exp $
-->
<Chapter Id="runtime">
......@@ -144,9 +144,10 @@ postgres$ <userinput>initdb -D /usr/local/pgsql/data</userinput>
that can be found in <xref linkend="locale">. The sort order used
within a particular database cluster is set by
<command>initdb</command> and cannot be changed later, short of
dumping all data, rerunning <command>initdb</command>, and
reloading the data. So it's important to make this choice correctly
the first time.
dumping all data, rerunning <command>initdb</command>, and reloading
the data. There is also a performance impact for using locales
other than <literal>C</> or <literal>POSIX</>. Therefore, it is
important to make this choice correctly the first time.
</para>
</sect1>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment