summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2009-04-25 16:57:19 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2009-04-25 16:57:19 +0000
commit2671e98daa4ad2ec590a3e0fd30c0bb053dabd3f (patch)
tree9f59ca3307fe028f1a1b12d4f854c2510db99385
parent96ca81fb00b58fc17ac72a909ea666d8b8bc96e9 (diff)
downloadbrdo-2671e98daa4ad2ec590a3e0fd30c0bb053dabd3f.tar.gz
brdo-2671e98daa4ad2ec590a3e0fd30c0bb053dabd3f.tar.bz2
#301362 by moshe weitzman, David Strauss, Narayan Newton, and chx: Default to InnoDB in MySQL.
-rw-r--r--CHANGELOG.txt2
-rw-r--r--INSTALL.mysql.txt3
-rw-r--r--includes/database/mysql/schema.inc10
3 files changed, 11 insertions, 4 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 2ceca79e0..0edb48226 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -8,6 +8,8 @@ Drupal 7.0, xxxx-xx-xx (development version)
* Support for master/slave replication, transactions, multi-insert queries,
delayed inserts, and other features.
* Added support for the SQLite database engine.
+ * Default to InnoDB engine, rather than MyISAM, on MySQL when available.
+ This offers increased scalability and data integrity.
- Security:
* Protected cron.php -- cron will only run if the proper key is provided.
* Implemented much stronger password hashes that are also compatible with the
diff --git a/INSTALL.mysql.txt b/INSTALL.mysql.txt
index ae50ebb40..a5490a5af 100644
--- a/INSTALL.mysql.txt
+++ b/INSTALL.mysql.txt
@@ -38,3 +38,6 @@ If successful, MySQL will reply with:
Query OK, 0 rows affected
+If the InnoDB storage engine is available, it will be used for all database
+tables. InnoDB provides features over MyISAM such as transaction support,
+row-level locks, and consistent non-locking reads.
diff --git a/includes/database/mysql/schema.inc b/includes/database/mysql/schema.inc
index aa0905a35..ff380ba9d 100644
--- a/includes/database/mysql/schema.inc
+++ b/includes/database/mysql/schema.inc
@@ -59,9 +59,11 @@ class DatabaseSchema_mysql extends DatabaseSchema {
* An array of SQL statements to create the table.
*/
protected function createTableSql($name, $table) {
- if (empty($table['mysql_suffix'])) {
- $table['mysql_suffix'] = 'DEFAULT CHARACTER SET UTF8';
- }
+ // Provide some defaults if needed
+ $table += array(
+ 'mysql_engine' => 'InnoDB',
+ 'mysql_character_set' => 'UTF8',
+ );
$sql = "CREATE TABLE {" . $name . "} (\n";
@@ -79,7 +81,7 @@ class DatabaseSchema_mysql extends DatabaseSchema {
// Remove the last comma and space.
$sql = substr($sql, 0, -3) . "\n) ";
- $sql .= $table['mysql_suffix'];
+ $sql .= 'ENGINE = ' . $table['mysql_engine'] . ' DEFAULT CHARACTER SET ' . $table['mysql_character_set'];
// Add table comment.
if (!empty($table['description'])) {