Drupal and MySQLDrupal is one of the most popular open source CMS applications available – and it runs primarily on a MySQL backend.  Out of the box, the schema is well tuned and indexed.  However, there are some ways to tweak the default installation to get more out of the system right from start.  Similarly, there is a fair bit of hidden flexibility (especially in the latest version) in terms of database configuration.

In a free MySQL webinar on Wednesday, November 13th at 1pm EST, I’ll go over some of the improvements in Drupal 7 in terms of database connectivity and operation as well as profile the default installation from the database perspective.  I’ll also be covering some of the ways to optimize the default application and detailing some of the ways to benchmark your installation.

The title is “Drupal and MySQL Performance” and you can get more info and also register here. That same URL will also get you to the recording afterward.

As something to think about before the webinar, the first person to correctly answer the following question in the comments will win a free, collector’s edition Percona t-shirt:

What is the biggest difference in the database layer (in terms of code) when comparing Drupal 6 to the current release, Drupal 7?

Good luck and I hope to see you on Wednesday!

 

7 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Ferenc Nemeth

Drupal 6 uses either mysql or mysqli PHP extension (mysqli is the default if it is enabled)
Drupal 7 uses the PDO_MYSQL driver via PHP Data Objects (PDO) extension.

Miklos Szel

splitting the read/write operations->support master-slave config without hacking.
(and finally it arrives with InnoDB by default, but that’s not code-related :))

Merrick

Thanks Mike!

Great overview. I look forward to more Drupal & AWS topics! (overview & in-depth)

Miklos Szel

Thanks Mike 🙂
Unfortunately I wasn’t able to attend on the webinar but I’m going to watch it as soon as it’ll be available!

Another thing worth mentioning that the Drupal 7 default DB has multiple duplicated indexes (8 IIRC)
I guess it’s the ‘heritage’ of converting the MyISAM to InnoDB blindly without considering that the primary key is stored with the secondary indexes in InnoDB anyway.

Narayan Newton

Excellent presentation. One thing to mention that is sometimes missed in the transition to Drupal7 is tx isolation. D7 benefits quite a bit from switching to READ-COMMITTED and in particular some contrib modules (views_content_cache) semi-require it for large scale deployments. If your having locking issues on D7, this is something to keep in mind.

-N

mikeytown2

Trying to using the Memory table for the Drupal cache* tables is only supported if your using the Percona flavor of MySQL. Also noted that you might need to move the data column to be at the end.
http://www.mysqlperformanceblog.com/2011/09/06/dynamic-row-format-for-memory-tables/