[TYPO3-v4] Core performance for 4.6 and beyond

Jigal van Hemert jigal at xs4all.nl
Tue Feb 8 14:18:36 CET 2011


Hi,

On 8-2-2011 11:05, Christian Kuhn wrote:
> Sure! Don't get me wrong, Jigal: I love mysql for its performance and
> I'm not a bloody beginner in optimizing mysql. In fact the core queries
> are already optimized pretty well, in usual operation there are no wrong
> indexes or evil queries. We're running sites with up to 10k queries per
> second at peak time on mysql and it takes quite some time to get the
> configuration right after launch, to locate and fix slow queries of
> extensions and to optimize mysql to specific hardware (mostly memory)
> capabilities.

You're a pretty rare breed in this area! :-) Most people just want to 
run things "out of the box". Configuring MySQL to the specific needs of 
an installation can be quite a task and obviously you have what it takes 
to squeeze the last bit of performance out of a server.

Judging by the things one comes across in several installations it's 
sometimes a miracle that the website actually runs at all.

> Still, mysql tends to have problems with
> bigger text/blob fields: We occasionally see slow inserts in those
> bigger cache tables which handle page tables with ~0,5MB of html data
> per row and I've not found a way to change that on query, index or mysql
> config level.

You probably know all about how the different engines in MySQL handle 
their storage space and how it should be maintained. It can't be that 
these slow inserts happen when InnoDB has to expand the storage space or 
when it has to rotate logs?

> Additionally mysql (actually not mysql but more the
> underlying disks / storage systems) really gets problems with very high
> insert load (even if innodb is configured to speed up there at the cost
> of integrity) and in general mysql slows down if table space doesn't fit
> into memory anymore.

MySQL simply runs best if the database fits in memory. A disk bound 
situation is quite a problem. It may help a bit to use InnoDB storage 
space on a per table basis. As InnoDB stores the indexes inside the same 
file as the data it needs to have both in memory for fast processing. A 
single storage space which cannot fit in memory will make the whole 
database disk bound. It doesn't help either that you can't reduce the 
InnoDB storage space anymore like you can with MyISAM tables.

As you probably saw in different installations, table configurations 
which work quite well for small tables don't work well for large table, 
and vice versa. It's hard to make a situation where performance is 
optimal for small sites and really large sites.

-- 
Kind regards / met vriendelijke groet,

Jigal van Hemert
skype:jigal.van.hemert
msn: jigal at xs4all.nl
http://twitter.com/jigalvh


More information about the TYPO3-project-v4 mailing list