Merge "Fix for Ic74c7ba7 (c8c50eb): there's no reason to pass $this by reference."
[lhc/web/wiklou.git] / docs / database.txt
index 555347d..c0a2412 100644 (file)
@@ -8,7 +8,7 @@ By Tim Starling, January 2006.
 For information about the MediaWiki database layout, such as a 
 description of the tables and their contents, please see:
   http://www.mediawiki.org/wiki/Manual:Database_layout
-  http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/tables.sql?view=markup
+  https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/core.git;a=blob_plain;f=maintenance/tables.sql;hb=HEAD
 
 
 ------------------------------------------------------------------------
@@ -146,18 +146,16 @@ to avoid long-lasting locks. By default, MediaWiki opens a transaction
 at the first query, and commits it before the output is sent. Locks will
 be held from the time when the query is done until the commit. So you
 can reduce lock time by doing as much processing as possible before you
-do your write queries. Update operations which do not require database
-access can be delayed until after the commit by adding an object to
-$wgPostCommitUpdateList.
+do your write queries.
 
 Often this approach is not good enough, and it becomes necessary to
 enclose small groups of queries in their own transaction. Use the
 following syntax:
 
 $dbw = wfGetDB( DB_MASTER );
-$dbw->begin();
+$dbw->begin( __METHOD__ );
 /* Do queries */
-$dbw->commit();
+$dbw->commit( __METHOD__ );
 
 Use of locking reads (e.g. the FOR UPDATE clause) is not advised. They
 are poorly implemented in InnoDB and will cause regular deadlock errors.
@@ -188,3 +186,14 @@ MediaWiki does support the following other DBMSs to varying degrees.
 More information can be found about each of these databases (known issues,
 level of support, extra configuration) in the "databases" subdirectory in
 this folder.
+
+------------------------------------------------------------------------
+    Use of GROUP BY
+------------------------------------------------------------------------
+
+MySQL supports GROUP BY without checking anything in the SELECT clause. 
+Other DBMSs (especially Postgres) are stricter and require that all the 
+non-aggregate items in the SELECT clause appear in the GROUP BY. For 
+this reason, it is highly discouraged to use SELECT * with GROUP BY 
+queries.
+