1 Apr 29, 2010 01:55
My b2evolution Version: 3.3.2
I was editing some Widgets in phpMyAdmin (The b2evo interface doesn't like saving Widgets with script tags) when I noticed that some of my tables are InnoDB and some are MyISAM. This led me to a little research and to wonder if it could be the source of some of the recent performance issues I've noticed.
First, my questions for the b2evo experts:
1. What version first had this table type change?
2. What is the advantage to InnoDB that b2evo is taking advantage of that triggered the change?
3. Is InnoDB required for any particular b2evo functionality?
And now just some musings on my part, based on my limited knowledge:
From the small amount I've read, the primary advantage to InnoDB is row locking (rather than table locking) and therefore improved functionality in applications where there is a high volume of concurrent writing. On a single user implementation of b2evo (or even all but the most extreme multiuser implementation) this only seems to be the case for the hitlog and session related tables (there are still MyISAM). The other tables may be read frequently, but are only rarely written. So, from my rather ignorant perspective is seems the additional functionality of InnoDB would wasted on the majority of the tables it is applied to and moreso may actually be detrimental to performance. In fact, looking at the tables that were auto-converted to InnoDB, it seems it was done backwards. The large, high transaction tables are still MyISAM.
I found a little info from François [url=http://forums.b2evolution.net/viewtopic.php?t=3399]here[/url]. But really all he says is that MyISAM is for lowend apps.
Oh, just for grins, [url=http://maxhedrm.montebellopark.com/blog/htsrv/viewfile.php?root=collection_11&path=b2evo.csv.txt&viewtype=text]here is a csv[/url] of the Tables in my database, their record count, size & type.