mirror of
https://github.com/django/django.git
synced 2024-11-18 15:34:16 +00:00
c33d1ca1d9
Sphinx generates left single quotes for apostrophes after code markup, when right single quotes are required. The easiest way to fix this is just by inserting the unicode character for a right single quote. Instances of the problem were found by looking for ">‘" in the generated HTML.
71 lines
2.6 KiB
Plaintext
71 lines
2.6 KiB
Plaintext
===========
|
||
Tablespaces
|
||
===========
|
||
|
||
A common paradigm for optimizing performance in database systems is the use of
|
||
`tablespaces`_ to organize disk layout.
|
||
|
||
.. _`tablespaces`: http://en.wikipedia.org/wiki/Tablespace
|
||
|
||
.. warning::
|
||
Django does not create the tablespaces for you. Please refer to your
|
||
database engine's documentation for details on creating and managing
|
||
tablespaces.
|
||
|
||
|
||
Declaring tablespaces for tables
|
||
--------------------------------
|
||
|
||
A tablespace can be specified for the table generated by a model by supplying
|
||
the :attr:`~django.db.models.Options.db_tablespace` option inside the model's
|
||
``class Meta``. This option also affects tables automatically created for
|
||
:class:`~django.db.models.ManyToManyField`\ s in the model.
|
||
|
||
You can use the :setting:`DEFAULT_TABLESPACE` setting to specify a default value
|
||
for :attr:`~django.db.models.Options.db_tablespace`. This is useful for setting
|
||
a tablespace for the built-in Django apps and other applications whose code you
|
||
cannot control.
|
||
|
||
Declaring tablespaces for indexes
|
||
---------------------------------
|
||
|
||
You can pass the :attr:`~django.db.models.Field.db_tablespace` option to a
|
||
``Field`` constructor to specify an alternate tablespace for the ``Field``’s
|
||
column index. If no index would be created for the column, the option is
|
||
ignored.
|
||
|
||
You can use the :setting:`DEFAULT_INDEX_TABLESPACE` setting to specify
|
||
a default value for :attr:`~django.db.models.Field.db_tablespace`.
|
||
|
||
If :attr:`~django.db.models.Field.db_tablespace` isn't specified and you didn't
|
||
set :setting:`DEFAULT_INDEX_TABLESPACE`, the index is created in the same
|
||
tablespace as the tables.
|
||
|
||
An example
|
||
----------
|
||
|
||
.. code-block:: python
|
||
|
||
class TablespaceExample(models.Model):
|
||
name = models.CharField(max_length=30, db_index=True, db_tablespace="indexes")
|
||
data = models.CharField(max_length=255, db_index=True)
|
||
edges = models.ManyToManyField(to="self", db_tablespace="indexes")
|
||
|
||
class Meta:
|
||
db_tablespace = "tables"
|
||
|
||
In this example, the tables generated by the ``TablespaceExample`` model (i.e.
|
||
the model table and the many-to-many table) would be stored in the ``tables``
|
||
tablespace. The index for the name field and the indexes on the many-to-many
|
||
table would be stored in the ``indexes`` tablespace. The ``data`` field would
|
||
also generate an index, but no tablespace for it is specified, so it would be
|
||
stored in the model tablespace ``tables`` by default.
|
||
|
||
Database support
|
||
----------------
|
||
|
||
PostgreSQL and Oracle support tablespaces. SQLite and MySQL don't.
|
||
|
||
When you use a backend that lacks support for tablespaces, Django ignores all
|
||
tablespace-related options.
|