I found a superb post here about optimising WordPress for large installs.
One of the steps refers to lighthttpd
which sounds excellent but isn’t currently supported by DirectAdmin. Last time I messed about with a non-DA installation I managed to break my server and had to pay a professional to get it fixed…
One of its other steps is to ALTER
all of my MySQL tables to use the InnoDB engine instead of MyISAM.
This appeals to me because it would appear to fix some of the major problems I’ve been having – i.e. table locks. The following is an example of my MySQL’s SHOW PROCESSLIST;
including SQL statements:
| 17181 | my_db | localhost | my_db | Query | 35117 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="boraras-brigittae" AND wp_po |
| 17182 | my_db | localhost | my_db | Query | 35118 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status="publish" AND post_type IN ('post', 'page |
| 17183 | my_db | localhost | my_db | Query | 35117 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="boraras-brigittae" AND wp_po |
| 17184 | my_db | localhost | my_db | Query | 35117 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="boraras-brigittae" AND wp_po |
| 17185 | my_db | localhost | my_db | Query | 35041 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="akysis-vespa" AND wp_posts.p |
| 17186 | my_db | localhost | my_db | Query | 35050 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('images','profiledotline-gif') A |
| 17187 | my_db | localhost | my_db | Query | 35050 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('images','picarrow-gif') AND (po |
| 17188 | my_db | localhost | my_db | Query | 35043 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status="publish" AND post_type IN ('post', 'page |
| 17189 | my_db | localhost | my_db | Query | 35041 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('m','marginal') AND (post_type = |
| 17190 | my_db | localhost | my_db | Query | 34989 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="piaractus-brachypomus" AND w |
| 17191 | my_db | localhost | my_db | Query | 34989 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('w','wet-dry-filter') AND (post_ |
| 17192 | my_db | localhost | my_db | Query | 34990 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type="post" AN |
| 17193 | my_db | localhost | my_db | Query | 34954 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="corydoras-sterbai" AND wp_po |
| 17194 | my_db | localhost | my_db | Query | 34954 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="piaractus-brachypomus" AND w |
| 17195 | my_db | localhost | my_db | Query | 34955 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type="post" AN |
| 17196 | my_db | localhost | my_db | Query | 34954 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="piaractus-brachypomus" AND w |
| 17197 | my_db | localhost | my_db | Query | 34897 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type="post" AN |
| 17198 | my_db | localhost | my_db | Query | 34955 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type="post" AN |
| 17199 | my_db | localhost | my_db | Query | 34898 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status="publish" AND post_type IN ('post', 'page |
| 17200 | my_db | localhost | my_db | Query | 34897 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type="post" AN |
| 17201 | my_db | localhost | my_db | Query | 34898 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('forums','lofiversion','index-ph |
| 17202 | my_db | localhost | my_db | Query | 34897 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('forums') AND (post_type="page |
| 17204 | my_db | localhost | my_db | Query | 34897 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status = "publish' AND post_type IN ('post', 'page |
| 17205 | my_db | localhost | my_db | Query | 34897 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="sawbwa-resplendens" AND wp_p |
| 17206 | my_db | localhost | my_db | Query | 34897 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="badis-sp-buxar" AND wp_posts |
| 17207 | my_db | localhost | my_db | Query | 34898 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="melanotaenia-boesemani" AND |
| 17208 | my_db | localhost | my_db | Query | 34898 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="betta-prima" AND wp_posts.po |
| 17209 | my_db | localhost | my_db | Query | 34865 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('forums') AND (post_type="page |
| 17210 | my_db | localhost | my_db | Query | 34897 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = "post' AN |
| 17211 | my_db | localhost | my_db | Query | 34898 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status="publish" AND post_type IN ('post', 'page |
| 17213 | my_db | localhost | my_db | Query | 34864 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="piaractus-brachypomus" AND w |
| 17214 | my_db | localhost | my_db | Query | 34864 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type="post" AN |
| 17215 | my_db | localhost | my_db | Query | 34864 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('knowledge-base') AND (post_type |
| 17216 | my_db | localhost | my_db | Query | 34865 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type="post" AN |
| 17217 | my_db | localhost | my_db | Query | 34864 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="piaractus-brachypomus" AND w |
| 17218 | my_db | localhost | my_db | Query | 34864 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="badis-sp-buxar" AND wp_posts |
| 17219 | my_db | localhost | my_db | Query | 34864 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('forums','lofiversion','index-ph |
| 17220 | my_db | localhost | my_db | Query | 34864 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="betta-prima" AND wp_posts.po |
| 17221 | my_db | localhost | my_db | Query | 34864 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type="post" AN |
| 17222 | my_db | localhost | my_db | Query | 34865 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="piaractus-brachypomus" AND w |
| 17223 | my_db | localhost | my_db | Query | 34864 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="piaractus-brachypomus" AND w |
| 17224 | my_db | localhost | my_db | Query | 34865 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="hemichromis-lifalili" AND wp |
| 17225 | my_db | localhost | my_db | Query | 34864 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status="publish" AND post_type IN ('post', 'page |
| 17226 | my_db | localhost | my_db | Query | 34862 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="apistogramma-borellii" AND w |
| 17227 | my_db | localhost | my_db | Query | 34863 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="melanotaenia-lacustris" AND |
| 17228 | my_db | localhost | my_db | Query | 34862 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="melanotaenia-lacustris" AND |
| 17229 | my_db | localhost | my_db | Query | 34861 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="mikrogeophagus-altispinosus" |
| 17230 | my_db | localhost | my_db | Query | 34861 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID = 25503 AND wp_posts.post_type="atta |
| 17231 | my_db | localhost | my_db | Query | 34803 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name = "piaractus-brachypomus' AND w |
| 17232 | my_db | localhost | my_db | Query | 34803 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type="post" AN |
| 17233 | my_db | localhost | my_db | Query | 34803 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('knowledge-base') AND (post_type |
| 17234 | my_db | localhost | my_db | Query | 34803 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status="publish" AND post_type IN ('post', 'page |
| 17235 | my_db | localhost | my_db | Query | 34803 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('forums') AND (post_type="page |
| 17236 | my_db | localhost | my_db | Query | 34803 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = "post' AN |
| 17237 | my_db | localhost | my_db | Query | 34803 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('forums') AND (post_type="page |
| 17238 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ("m','migrate') AND (post_type = |
| 17239 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="hemichromis-lifalili" AND wp |
| 17240 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status="publish" AND post_type IN ('post', 'page |
| 17241 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('forums') AND (post_type="page |
| 17242 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = "post' AN |
| 17243 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status="publish" AND post_type IN ('post', 'page |
| 17244 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('forums','lofiversion','index-ph |
| 17245 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status="publish" AND post_type IN ('post', 'page |
| 17246 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT post_modified_gmt FROM wp_posts WHERE post_status="publish" AND post_type IN ('post', 'page |
| 17247 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('forums') AND (post_type="page |
| 17248 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name = "geophagus-brokopondo' AND wp |
| 17249 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name="hyphessobrycon-amandae" AND |
| 17253 | my_db | localhost | my_db | Query | 34788 | Waiting for table level lock | SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type="post" AN |
| 17255 | my_db | localhost | my_db | Query | 34786 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('knowledge-base') AND (post_type |
| 17260 | my_db | localhost | my_db | Query | 34786 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('s','silver-sand') AND (post_typ |
| 17262 | my_db | localhost | my_db | Query | 34786 | Waiting for table level lock | SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('forums') AND (post_type="page |
| 25505 | root | localhost | NULL | Query | 2 | NULL | SHOW PROCESSLIST
I”ve enabled the slow-query-log
and the output (having been run through an analysis script) can be found here.
However, as I’ve attempted to ALTER
my tables, the following error has occurred on wp_posts
: ERROR 1214 (HY000) at line 14: The used table type doesn't support FULLTEXT indexes
So, my questions are kinda three-fold, but kinda just one:
- Can I use InnoDB and keep the FULL-TEXT INDEXES that WordPress appears to use?
- Will using InnoDB help to alleviate the problems I’ve been having with table-locks?
- Can I use InnoDB without having an adverse effect on my WordPress installation?*
*I have myriad plugins including W3 Total Cache, Simple Forums, AdRotate and many more.