Database abstraction
This page is outdated. Please see Manual:Database access on MediaWiki.org for more up to date information. |
Why database abstraction ? Edit
- MediaWiki currently runs *only* on mysql - many folks have good reasons *not* to use mysql.
- We should either only use strict ISO-SQL or provide an easy-to-adopt database abstraction
Implementation concepts Edit
Storage abstraction code Edit
- All database access should be encapsulated by high-level functions.
- Wiki-Code should *NEVER* do any SQL queries by itself.
- Example: mediawiki_fetch_article($topic), etc.
- API can be used to get/post structured data.
Datebase setup and schemata Edit
- The setup script should be extended to select the database backend
- Every database backend has got its own schema source
- See Proposed Database Schema Changes for ongoing schema discussion
Quality management and clear APIs are important here! Edit
Outreach to other developer communities Edit
It would be worthwhile to describe sandard bottleneck queries, like watchlist and allpages, which developers who use and optimize various databases could analyze and discuss. This could help identify, not only how to get the expected results in many db languages, but also what db-specific advantages there are in different SQL/stored-procedure implementations. +sj+ 17:48, 1 Aug 2004 (UTC)