Hints on how to fill a database.
This commit is contained in:
parent
045573983a
commit
99281cf881
75
doc/src/sgml/populate.sgml
Normal file
75
doc/src/sgml/populate.sgml
Normal file
@ -0,0 +1,75 @@
|
||||
<chapter>
|
||||
<title>Populating a Database</title>
|
||||
|
||||
<note>
|
||||
<title>Author</title>
|
||||
<para>
|
||||
Written by Tom Lane, from an e-mail message dated 1999-12-05.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
One may need to do a large number of table insertions when first
|
||||
populating a database. Here are some tips and techniques for making that as
|
||||
efficient as possible.
|
||||
</para>
|
||||
|
||||
<sect1>
|
||||
<title>Disable Auto-commit</title>
|
||||
|
||||
<para>
|
||||
Turn off auto-commit and just do one commit at
|
||||
the end. Otherwise <productname>Postgres</productname> is doing a
|
||||
lot of work for each record
|
||||
added. In general when you are doing bulk inserts, you want
|
||||
to turn off some of the database features to gain speed.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Use COPY FROM</title>
|
||||
|
||||
<para>
|
||||
Use <command>COPY FROM STDIN</command> to load all the records in one
|
||||
command, instead
|
||||
of a series of INSERT commands. This reduces parsing, planning, etc
|
||||
overhead a great deal. If you do this then it's not necessary to fool
|
||||
around with autocommit.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Remove Indices</title>
|
||||
|
||||
<para>
|
||||
If you are loading a freshly created table, the fastest way is to
|
||||
create the table, bulk-load with COPY, then create any indexes needed
|
||||
for the table. Creating an index on pre-existing data is quicker than
|
||||
updating it incrementally as each record is loaded.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you are augmenting an existing table, you can <command>DROP
|
||||
INDEX</command>, load the table, then recreate the index. Of
|
||||
course, the database performance for other users may be adversely
|
||||
affected during the time that the index is missing.
|
||||
</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode:sgml
|
||||
sgml-omittag:nil
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"./reference.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:("/usr/lib/sgml/CATALOG")
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
-->
|
Loading…
x
Reference in New Issue
Block a user