[TYPO3-dev] TYPO3 4.1 INNODB

R. van Twisk typo3 at rvt.dds.nl
Thu Mar 1 12:41:44 CET 2007


Dmitry Dulepov wrote:
> Hi!
>
> Steffen Müller wrote:
>   
>> Dmitry, could you please explain why "InnoDB is more stable than MyISAM
>> and prevents database corruption at peaks"?
>> I did not yet read about that.
>>     
>
> Mysql does its best to prevent simultaneous writes to myisam tables. It 
> relies on locks (normally file locks) when user tries to write to myisam 
> table. However this does not always work as expected, especially at peak 
> hours. Sometimes at least two writes still happen and table immediately 
> becomes corrupted. Search English list archives, you will find several 
> questions about corrupted tables. I had those too several times, when 
> mysql has to process over 700qps (as mytop reports). At one point 
> crashes started to appear every day. I searched inet and found various 
> posts about it that generally recommended to move to innodb. I did that 
> more than half a year ago and did not have *any* table corruptions on 
> those tables even though load increased.
>
> InnoDb uses row transaction internally even if user did not start it 
> explicitly. While myisam locks the whole table at write, innodb locks 
> only space for one row. See the advantage? You can have many clients 
> writing to table at once with InnoDB, who are well separated. But you 
> cannot have more than one write to myisam table (performance killer!) 
> and if it happens, your table dies immediately!
>
> InnoDb, of course, has its disadvantages. If "select count(*) from 
> table" takes very little time/resources on myisam (because count is 
> stored in table itself), innodb has to really count rows. But this is 
> not a problem for typo3 because typo3 does not have such queries :)
>
> But there is one more advantage for Innodb. Myisam keeps indexes 
> separately from row data. Thus if row pointer is found, myisam engine 
> has to do one  more seek to data. Innodb keeps indexes together with 
> rows, so it does not have to seek again.
>
> In general, I think innodb is much better for typo3 than myisam. I 
> really did several days of research before switching.
>
>   
Hey Dmitry,

I also have seen the same behavior of myissam table, so whatever we can 
move out of
myisam when innodb is available would be great.

If you read the thread '[TYPO3-dev]  Indexed Search Performance 
Improvement' people are finding
a way to improve indexed search using full text indexes. However full 
text search doesn't work on
innodb, something to take into consideration.

I am not sure if indexed search operates on it's own tables, or that it 
works on other tables.
But possibly we need to keep indexed search in myisam.

in any case, +1 for moving to innodb whenever we can!

Ries







More information about the TYPO3-dev mailing list