Drupal 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!
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.
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 :))
Congrats Ferenc and Miklos!
Both are very big changes between versions – and @Miklos, shipping with InnoDB is a big plus!
Our community manager will contact you via email to arrange for sending out your t-shirts.
Thanks Mike!
Great overview. I look forward to more Drupal & AWS topics! (overview & in-depth)
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.
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
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/