Eu sugiro imediatamente usando o MySQL 5.5 com o seguinte:
innodb_file_per_table < - sempre habilite este
innodb_io_capacity = 65536
innodb_read_io_threads = 64
innodb_write_io_threads-64
query_cache_size = 0 (Padrão: Disbale seu cache de consulta)
Até que o MySQL 5.5 fique maduro, não use os vários buffer pools.
Quanta memória RAM você precisa depende de duas (2) coisas
Para o MyISAM, esta consulta mostra o tamanho do buffer de chave que seu sistema deve ser configurado para
SELECIONAR CONCAT (CEILING (ndxsum / POWER (1024,2)), 'M') RecommendedKeyBufferSize FROM (SELECT SUM ( index_length) ndxsum FROM information_schema.tables WHERE engine = 'MyISAM' e table_schema NOT IN ('information_schema', 'mysql')) A;
Para o InnoDB, esta consulta mostra o tamanho do buffer pool innodb que seu sistema deve ser configurado para
SELECT CONCAT (CEILING (innodsum / POWER (1024,2)), 'M') RecommendedInnoDBBufferPoolSize FROM (SELECT SUM (data_length + index_length) innodbsum FROM information_schema.tables WHERE engine = 'InnoDB') A;
Para obter uma visão completa do que você tem até o MySQL Data, execute esta consulta:
SELECIONAR DBName, CONCAT (LPAD (FORMATO (SDSize / POWER (1024, pw), 3), 17, ''), '', SUBSTR ('KMGTP', pw + 1,1), ' B ') "Tamanho dos Dados", CONCAT (LPAD (FORMATO) (SXSize / POWER (1024, pw), 3), 17,' '),' ', SUBSTR (' KMGTP ', pw + 1,1),' B ') "Tamanho do índice", CONCAT (LPAD (FORMATO (STSize / POWER (1024, pw), 3), 17,' '),' ', SUBSTR (' KMGTP ', pw + 1,1),' B ' ) "Tamanho Total" FROM (SELECT IFNULL (DB, 'Todos os Bancos de Dados') DBName, SUM (DSize) SDSize, SOM (SUMS) index_length TSize FROM information_schema.tables ONDE table_schema NOT IN ('mysql', 'information_schema', 'performance_schema')) GRUPO AAA POR BANCO COM ROLLUP) AA, (SELECIONE 3 pw) BB ORDER BY (SDSize + SXSize);
Defina (SELECIONE 0 pw) BB para bytes |
Set (SELECIONAR 1 pw) BB For KiloBytes
Set (SELECIONE 2 pw) BB Para MegaBytes
Set (SELECIONE 3 pw) BB For GigaBytes
Set (SELECIONE 4 pw) BB For TeraBytes
Set (SELECIONE 5 pw) BB For PetaBytes (me mande um email se você começar a usar isso)
O key_buffer_size máximo é de 4 GB, portanto, não ultrapasse isso.
O máximo innodb_buffer_pool_size deve ser 75-80% ou RAM instalada
Sempre configure innodb_log_file_size para 25% de innodb_buffer_pool_size
O máximo innodb_log_file_size é 2047M (o InnoDB não funciona com 2G ou 2048M, você pode verificar o código fonte do MySQL)
Com isso em mente, você poderá prever as configurações necessárias em /etc/my.cnf e no seu hardware.
Experimente!