Database Best Practice¶
Currently ownCloud supports the following relational database management systems:
- MySQL
- MariaDB
- PostgreSQL
- SQLite
- Oracle
SQLite is not supported in the Enterprise edition, and is not recommended except for systems with very light workloads, and for testing ownCloud.
We are using the doctrine database abstraction layer and schema evolution with a MDB2 Schema based table description in XML.
Using MariaDB/MySQL instead of SQLite¶
MySQL or MariaDB are preferred because of the performance limitations of SQLite with highly concurrent applications, like ownCloud.
On large instances you could consider running MySQLTuner to optimize the database.
See the section Database Configuration for how to configure ownCloud for MySQL or MariaDB. If your installation is already running on SQLite then it is possible to convert to MySQL or MariaDB using the steps provided in Converting Database Type.
Improve slow performance with MySQL on Windows¶
On Windows hosts running MySQL on the same system changing the parameter dbhost in your config/config.php from localhost to 127.0.0.1 could improve the page loading time.
See also this forum thread.
Other performance improvements¶
Mysql: compare https://tools.percona.com/wizard to your current settings MariaDB: https://mariadb.com/kb/en/optimization-and-tuning/
Postgresql¶
Alternative to MariaDB/MySQL. Used in production by a few core developers.
Requires at least Postgresql 9.0
Other performance improvements¶
See http://wiki.postgresql.org/wiki/Performance_Optimization
Oracle Database¶
Usage scenario: Existing enterprise installations. Only core apps are supported and tested. Not recommended because it involves compiling the oci8
Other performance improvements¶
http://de.slideshare.net/cjorcl/best-practices-php-and-the-oracle-database and ask your DBA.
Problems¶
When ORA-56600 occurs (Oracle Bug 8467564) set this php.ini setting: oci8.statement_cache_size=1000, see oracle forum discussion