Commit ceec779a authored by Bruce Momjian's avatar Bruce Momjian

Update FAQ.

parent 3576820e
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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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
......
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