Update FAQ.
This commit is contained in:
parent
3576820e78
commit
ceec779ab5
59
doc/FAQ
59
doc/FAQ
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL
|
Frequently Asked Questions (FAQ) for PostgreSQL
|
||||||
|
|
||||||
Last updated: Tue Feb 12 12:18:09 EST 2002
|
Last updated: Thu Feb 14 12:14:47 EST 2002
|
||||||
|
|
||||||
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
|
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
|
||||||
|
|
||||||
@ -48,13 +48,11 @@
|
|||||||
Why?
|
Why?
|
||||||
3.4) When I try to start postmaster, I get IpcSemaphoreCreate errors.
|
3.4) When I try to start postmaster, I get IpcSemaphoreCreate errors.
|
||||||
Why?
|
Why?
|
||||||
3.5) How do I prevent other hosts from accessing my PostgreSQL
|
3.5) How do I control connections from other hosts?
|
||||||
database?
|
3.6) How do I tune the database engine for better performance?
|
||||||
3.6) Why can't I connect to my database from another machine?
|
3.7) What debugging features are available?
|
||||||
3.7) How do I tune the database engine for better performance?
|
3.8) Why do I get "Sorry, too many clients" when trying to connect?
|
||||||
3.8) What debugging features are available?
|
3.9) What are the pg_sorttempNNN.NN files in my database directory?
|
||||||
3.9) Why do I get "Sorry, too many clients" when trying to connect?
|
|
||||||
3.10) What are the pg_sorttempNNN.NN files in my database directory?
|
|
||||||
|
|
||||||
Operational Questions
|
Operational Questions
|
||||||
|
|
||||||
@ -484,7 +482,7 @@
|
|||||||
Administrator's Guide for more detailed information about shared
|
Administrator's Guide for more detailed information about shared
|
||||||
memory and semaphores.
|
memory and semaphores.
|
||||||
|
|
||||||
3.5) How do I prevent other hosts from accessing my PostgreSQL database?
|
3.5) How do I control connections from other hosts?
|
||||||
|
|
||||||
By default, PostgreSQL only allows connections from the local machine
|
By default, PostgreSQL only allows connections from the local machine
|
||||||
using Unix domain sockets. Other machines will not be able to connect
|
using Unix domain sockets. Other machines will not be able to connect
|
||||||
@ -492,14 +490,7 @@
|
|||||||
authentication by modifying the file $PGDATA/pg_hba.conf accordingly.
|
authentication by modifying the file $PGDATA/pg_hba.conf accordingly.
|
||||||
This will allow TCP/IP connections.
|
This will allow TCP/IP connections.
|
||||||
|
|
||||||
3.6) Why can't I connect to my database from another machine?
|
3.6) How do I tune the database engine for better performance?
|
||||||
|
|
||||||
The default configuration allows only Unix domain socket connections
|
|
||||||
from the local machine. To enable TCP/IP connections, make sure
|
|
||||||
postmaster has been started with the -i option, and add an appropriate
|
|
||||||
host entry to the file pgsql/data/pg_hba.conf.
|
|
||||||
|
|
||||||
3.7) How do I tune the database engine for better performance?
|
|
||||||
|
|
||||||
Certainly, indexes can speed up queries. The EXPLAIN command allows
|
Certainly, indexes can speed up queries. The EXPLAIN command allows
|
||||||
you to see how PostgreSQL is interpreting your query, and which
|
you to see how PostgreSQL is interpreting your query, and which
|
||||||
@ -530,7 +521,7 @@
|
|||||||
You can also use the CLUSTER command to group data in tables to match
|
You can also use the CLUSTER command to group data in tables to match
|
||||||
an index. See the CLUSTER manual page for more details.
|
an index. See the CLUSTER manual page for more details.
|
||||||
|
|
||||||
3.8) What debugging features are available?
|
3.7) What debugging features are available?
|
||||||
|
|
||||||
PostgreSQL has several features that report status information that
|
PostgreSQL has several features that report status information that
|
||||||
can be valuable for debugging purposes.
|
can be valuable for debugging purposes.
|
||||||
@ -577,7 +568,7 @@
|
|||||||
pgsql/data/base/dbname directory. The client profile file will be put
|
pgsql/data/base/dbname directory. The client profile file will be put
|
||||||
in the client's current directory.
|
in the client's current directory.
|
||||||
|
|
||||||
3.9) Why do I get "Sorry, too many clients" when trying to connect?
|
3.8) Why do I get "Sorry, too many clients" when trying to connect?
|
||||||
|
|
||||||
You need to increase postmaster's limit on how many concurrent backend
|
You need to increase postmaster's limit on how many concurrent backend
|
||||||
processes it can start.
|
processes it can start.
|
||||||
@ -601,7 +592,7 @@
|
|||||||
was 64, and changing it required a rebuild after altering the
|
was 64, and changing it required a rebuild after altering the
|
||||||
MaxBackendId constant in include/storage/sinvaladt.h.
|
MaxBackendId constant in include/storage/sinvaladt.h.
|
||||||
|
|
||||||
3.10) What are the pg_sorttempNNN.NN files in my database directory?
|
3.9) What are the pg_sorttempNNN.NN files in my database directory?
|
||||||
|
|
||||||
They are temporary files generated by the query executor. For example,
|
They are temporary files generated by the query executor. For example,
|
||||||
if a sort needs to be done to satisfy an ORDER BY, and the sort
|
if a sort needs to be done to satisfy an ORDER BY, and the sort
|
||||||
@ -671,29 +662,31 @@
|
|||||||
4.6) How much database disk space is required to store data from a typical
|
4.6) How much database disk space is required to store data from a typical
|
||||||
text file?
|
text file?
|
||||||
|
|
||||||
A PostgreSQL database may need six-and-a-half times the disk space
|
A PostgreSQL database may require up to five times the disk space to
|
||||||
required to store the data in a flat file.
|
store data from a text file.
|
||||||
|
|
||||||
Consider a file of 300,000 lines with two integers on each line. The
|
As an example, consider a file of 100,000 lines with an integer and
|
||||||
flat file is 2.4 MB. The size of the PostgreSQL database file
|
text description on each line. Suppose the text string avergages
|
||||||
containing this data can be estimated at 14 MB:
|
twenty characters in length. The flat file would be 2.8 MB. The size
|
||||||
|
of the PostgreSQL database file containing this data can be estimated
|
||||||
|
as 6.6 MB:
|
||||||
36 bytes: each row header (approximate)
|
36 bytes: each row header (approximate)
|
||||||
+ 8 bytes: two int fields @ 4 bytes each
|
26 bytes: two int fields @ 4 bytes each
|
||||||
+ 4 bytes: pointer on page to tuple
|
+ 4 bytes: pointer on page to tuple
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
48 bytes per row
|
66 bytes per row
|
||||||
|
|
||||||
The data page size in PostgreSQL is 8192 bytes (8 KB), so:
|
The data page size in PostgreSQL is 8192 bytes (8 KB), so:
|
||||||
|
|
||||||
8192 bytes per page
|
8192 bytes per page
|
||||||
------------------- = 171 rows per database page (rounded up)
|
------------------- = 124 rows per database page (rounded down)
|
||||||
48 bytes per row
|
66 bytes per row
|
||||||
|
|
||||||
300000 data rows
|
100000 data rows
|
||||||
-------------------- = 1755 database pages
|
-------------------- = 807 database pages (rounded up)
|
||||||
171 rows per page
|
124 rows per page
|
||||||
|
|
||||||
1755 database pages * 8192 bytes per page = 14,376,960 bytes (14 MB)
|
807 database pages * 8192 bytes per page = 6,610,944 bytes (6.6 MB)
|
||||||
|
|
||||||
Indexes do not require as much overhead, but do contain the data that
|
Indexes do not require as much overhead, but do contain the data that
|
||||||
is being indexed, so they can be large also.
|
is being indexed, so they can be large also.
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
alink="#0000ff">
|
alink="#0000ff">
|
||||||
<H1>Frequently Asked Questions (FAQ) for PostgreSQL</H1>
|
<H1>Frequently Asked Questions (FAQ) for PostgreSQL</H1>
|
||||||
|
|
||||||
<P>Last updated: Tue Feb 12 12:18:09 EST 2002</P>
|
<P>Last updated: Thu Feb 14 12:14:47 EST 2002</P>
|
||||||
|
|
||||||
<P>Current maintainer: Bruce Momjian (<A href=
|
<P>Current maintainer: Bruce Momjian (<A href=
|
||||||
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
|
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
|
||||||
@ -72,16 +72,13 @@
|
|||||||
get <I>IpcMemoryCreate</I> errors. Why?<BR>
|
get <I>IpcMemoryCreate</I> errors. Why?<BR>
|
||||||
<A href="#3.4">3.4</A>) When I try to start <I>postmaster</I>, I
|
<A href="#3.4">3.4</A>) When I try to start <I>postmaster</I>, I
|
||||||
get <I>IpcSemaphoreCreate</I> errors. Why?<BR>
|
get <I>IpcSemaphoreCreate</I> errors. Why?<BR>
|
||||||
<A href="#3.5">3.5</A>) How do I prevent other hosts from
|
<A href="#3.5">3.5</A>) How do I control connections from other hosts?<BR>
|
||||||
accessing my PostgreSQL database?<BR>
|
<A href="#3.6">3.6</A>) How do I tune the database engine for
|
||||||
<A href="#3.6">3.6</A>) Why can't I connect to my database from
|
|
||||||
another machine?<BR>
|
|
||||||
<A href="#3.7">3.7</A>) How do I tune the database engine for
|
|
||||||
better performance?<BR>
|
better performance?<BR>
|
||||||
<A href="#3.8">3.8</A>) What debugging features are available?<BR>
|
<A href="#3.7">3.7</A>) What debugging features are available?<BR>
|
||||||
<A href="#3.9">3.9</A>) Why do I get <I>"Sorry, too many
|
<A href="#3.8">3.8</A>) Why do I get <I>"Sorry, too many
|
||||||
clients"</I> when trying to connect?<BR>
|
clients"</I> when trying to connect?<BR>
|
||||||
<A href="#3.10">3.10</A>) What are the <I>pg_sorttempNNN.NN</I>
|
<A href="#3.9">3.9</A>) What are the <I>pg_sorttempNNN.NN</I>
|
||||||
files in my database directory?<BR>
|
files in my database directory?<BR>
|
||||||
|
|
||||||
|
|
||||||
@ -633,8 +630,8 @@
|
|||||||
PostgreSQL Administrator's Guide for more detailed information
|
PostgreSQL Administrator's Guide for more detailed information
|
||||||
about shared memory and semaphores.</P>
|
about shared memory and semaphores.</P>
|
||||||
|
|
||||||
<H4><A name="3.5">3.5</A>) How do I prevent other hosts from
|
<H4><A name="3.5">3.5</A>) How do I control connections from other
|
||||||
accessing my PostgreSQL database?</H4>
|
hosts?</H4>
|
||||||
|
|
||||||
<P>By default, PostgreSQL only allows connections from the local
|
<P>By default, PostgreSQL only allows connections from the local
|
||||||
machine using Unix domain sockets. Other machines will not be able
|
machine using Unix domain sockets. Other machines will not be able
|
||||||
@ -643,16 +640,7 @@
|
|||||||
<I>$PGDATA/pg_hba.conf</I> accordingly. This will allow TCP/IP
|
<I>$PGDATA/pg_hba.conf</I> accordingly. This will allow TCP/IP
|
||||||
connections.</P>
|
connections.</P>
|
||||||
|
|
||||||
<H4><A name="3.6">3.6</A>) Why can't I connect to my database from
|
<H4><A name="3.6">3.6</A>) How do I tune the database engine for
|
||||||
another machine?</H4>
|
|
||||||
|
|
||||||
<P>The default configuration allows only Unix domain socket
|
|
||||||
connections from the local machine. To enable TCP/IP connections,
|
|
||||||
make sure <I>postmaster</I> has been started with the <I>-i</I>
|
|
||||||
option, and add an appropriate host entry to the file
|
|
||||||
<I>pgsql/data/pg_hba.conf</I>.</P>
|
|
||||||
|
|
||||||
<H4><A name="3.7">3.7</A>) How do I tune the database engine for
|
|
||||||
better performance?</H4>
|
better performance?</H4>
|
||||||
|
|
||||||
<P>Certainly, indexes can speed up queries. The
|
<P>Certainly, indexes can speed up queries. The
|
||||||
@ -689,7 +677,7 @@
|
|||||||
data in tables to match an index. See the <SMALL>CLUSTER</SMALL>
|
data in tables to match an index. See the <SMALL>CLUSTER</SMALL>
|
||||||
manual page for more details.</P>
|
manual page for more details.</P>
|
||||||
|
|
||||||
<H4><A name="3.8">3.8</A>) What debugging features are
|
<H4><A name="3.7">3.7</A>) What debugging features are
|
||||||
available?</H4>
|
available?</H4>
|
||||||
|
|
||||||
<P>PostgreSQL has several features that report status information
|
<P>PostgreSQL has several features that report status information
|
||||||
@ -745,7 +733,7 @@
|
|||||||
in the <I>pgsql/data/base/dbname</I> directory. The client profile
|
in the <I>pgsql/data/base/dbname</I> directory. The client profile
|
||||||
file will be put in the client's current directory.</P>
|
file will be put in the client's current directory.</P>
|
||||||
|
|
||||||
<H4><A name="3.9">3.9</A>) Why do I get <I>"Sorry, too many
|
<H4><A name="3.8">3.8</A>) Why do I get <I>"Sorry, too many
|
||||||
clients"</I> when trying to connect?</H4>
|
clients"</I> when trying to connect?</H4>
|
||||||
|
|
||||||
<P>You need to increase <I>postmaster</I>'s limit on how many
|
<P>You need to increase <I>postmaster</I>'s limit on how many
|
||||||
@ -775,7 +763,7 @@
|
|||||||
the MaxBackendId constant in
|
the MaxBackendId constant in
|
||||||
<I>include/storage/sinvaladt.h</I>.</P>
|
<I>include/storage/sinvaladt.h</I>.</P>
|
||||||
|
|
||||||
<H4><A name="3.10">3.10</A>) What are the <I>pg_sorttempNNN.NN</I>
|
<H4><A name="3.9">3.9</A>) What are the <I>pg_sorttempNNN.NN</I>
|
||||||
files in my database directory?</H4>
|
files in my database directory?</H4>
|
||||||
|
|
||||||
<P>They are temporary files generated by the query executor. For
|
<P>They are temporary files generated by the query executor. For
|
||||||
@ -862,30 +850,32 @@
|
|||||||
<H4><A name="4.6">4.6</A>) How much database disk space is required
|
<H4><A name="4.6">4.6</A>) How much database disk space is required
|
||||||
to store data from a typical text file?</H4>
|
to store data from a typical text file?</H4>
|
||||||
|
|
||||||
<P>A PostgreSQL database may need six-and-a-half times the disk
|
<P>A PostgreSQL database may require up to five times the disk space
|
||||||
space required to store the data in a flat file.</P>
|
to store data from a text file.</P>
|
||||||
|
|
||||||
<P>Consider a file of 300,000 lines with two integers on each line.
|
<P>As an example, consider a file of 100,000 lines with an integer
|
||||||
The flat file is 2.4 MB. The size of the PostgreSQL database file
|
and text description on each line. Suppose the text string avergages
|
||||||
containing this data can be estimated at 14 MB:</P>
|
twenty characters in length. The flat file would be 2.8 MB. The size
|
||||||
|
of the PostgreSQL database file containing this data can be
|
||||||
|
estimated as 6.6 MB:</P>
|
||||||
<PRE>
|
<PRE>
|
||||||
36 bytes: each row header (approximate)
|
36 bytes: each row header (approximate)
|
||||||
+ 8 bytes: two int fields @ 4 bytes each
|
26 bytes: two int fields @ 4 bytes each
|
||||||
+ 4 bytes: pointer on page to tuple
|
+ 4 bytes: pointer on page to tuple
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
48 bytes per row
|
66 bytes per row
|
||||||
|
|
||||||
The data page size in PostgreSQL is 8192 bytes (8 KB), so:
|
The data page size in PostgreSQL is 8192 bytes (8 KB), so:
|
||||||
|
|
||||||
8192 bytes per page
|
8192 bytes per page
|
||||||
------------------- = 171 rows per database page (rounded up)
|
------------------- = 124 rows per database page (rounded down)
|
||||||
48 bytes per row
|
66 bytes per row
|
||||||
|
|
||||||
300000 data rows
|
100000 data rows
|
||||||
-------------------- = 1755 database pages
|
-------------------- = 807 database pages (rounded up)
|
||||||
171 rows per page
|
124 rows per page
|
||||||
|
|
||||||
1755 database pages * 8192 bytes per page = 14,376,960 bytes (14 MB)
|
807 database pages * 8192 bytes per page = 6,610,944 bytes (6.6 MB)
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
<P>Indexes do not require as much overhead, but do contain the data
|
<P>Indexes do not require as much overhead, but do contain the data
|
||||||
|
Loading…
x
Reference in New Issue
Block a user