{"id":2911,"date":"2014-09-07T14:37:55","date_gmt":"2014-09-07T14:37:55","guid":{"rendered":"http:\/\/www.deuzebranaweb.com.br\/?p=2911"},"modified":"2014-09-07T14:37:55","modified_gmt":"2014-09-07T14:37:55","slug":"escolhendo-banco-de-dados-mysql-myisam-ou-innodb","status":"publish","type":"post","link":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/2014\/09\/07\/escolhendo-banco-de-dados-mysql-myisam-ou-innodb\/","title":{"rendered":"Escolhendo banco de dados MySQL: MyISAM ou InnoDB?"},"content":{"rendered":"<p>WordPress \u00e9 projetado para funcionar apenas no banco de dados MySQL. Ent\u00e3o, otimizando MySQL \u00e9 uma coisa muito importante se voc\u00ea deseja executar WordPress o mais r\u00e1pido poss\u00edvel sobre o hardware que voc\u00ea usa. Mas, isso pode n\u00e3o ser t\u00e3o simples como voc\u00ea pode coisa, considerando que o MySQL pode ser usado muitos mecanismos de armazenamento.<\/p>\n<p>Desde o MySQL 5.0, h\u00e1 10 motores (sim, dez) de armazenamento no MySQL. Antes do MySQL 5.5 foi lan\u00e7ado, MyISAM foi motor de armazenamento padr\u00e3o, e quando voc\u00ea cria uma nova tabela sem especificar motor, mesa usaria motor MyISAM. Ap\u00f3s atualizar para o MySQL 5.5, motor padr\u00e3o agora \u00e9 InnoDB. Grande coisa sobre MySQL \u00e9 que voc\u00ea pode usar diferentes mecanismos de armazenamento para cada tabela.<\/p>\n<h3>MyISAM<\/h3>\n<p>Esta \u00e9 a velha (est) mecanismo de armazenamento no MySQL e mais comumente usado. Este motor \u00e9 que \u00e9 f\u00e1cil de configurar (sem rela\u00e7\u00f5es de chave estrangeira entre as tabelas, ou problemas de design). Ele \u00e9 muito bom em opera\u00e7\u00f5es de leitura relacionado e \u00e9 compat\u00edvel com a indexa\u00e7\u00e3o de texto completo. Mas, ele tem muitas desvantagens: n\u00e3o h\u00e1 suporte transa\u00e7\u00e3o, nenhuma verifica\u00e7\u00e3o de integridade de dados (sem rela\u00e7\u00f5es de mesa rigorosos) e suporta bloqueio de tabela s\u00f3 completa tornando-se mais lento se voc\u00ea precisa atualizar ou inserir dados, pois para cada atualiza\u00e7\u00e3o ou inser\u00e7\u00e3o, a tabela inteira ser\u00e1 ser bloqueado tornando-o indispon\u00edvel para outras consultas. Devido a isso, \u00e9 MyISAM na boa m\u00e9dia para a maioria das mesas WordPress. MyISAM funciona bem fora da caixa, e ele n\u00e3o precisa de muita otimiza\u00e7\u00e3o.Mesmo com a otimiza\u00e7\u00e3o, voc\u00ea n\u00e3o pode ganhar muito em termos de desempenho em rela\u00e7\u00e3o a configura\u00e7\u00e3o padr\u00e3o.<\/p>\n<p>MyISAM n\u00e3o \u00e9 muito confi\u00e1vel em caso de falha de hardware, o desligamento do processo ou alguma outra perturba\u00e7\u00e3o. Isso quase sempre ir\u00e1 causar corrup\u00e7\u00e3o de dados em fun\u00e7\u00e3o das \u00faltimas opera\u00e7\u00f5es executadas.<\/p>\n<h3>InnoDB<\/h3>\n<p>Isso \u00e9 relativamente novo motor e suporta transa\u00e7\u00f5es, ele \u00e9 muito r\u00e1pido em opera\u00e7\u00f5es de inser\u00e7\u00e3o ou de atualiza\u00e7\u00e3o, porque ele suporta linha de bloqueio permitindo m\u00faltiplas opera\u00e7\u00f5es ao longo mesma mesa e ele suporta chaves estrangeiras para as rela\u00e7\u00f5es de tabela.E tudo o que faz InnoDB grande quando a integridade dos dados \u00e9 uma quest\u00e3o importante. Mas, criar tabelas com restri\u00e7\u00f5es de chave estrangeira nem sempre \u00e9 simples, ele n\u00e3o suporta a indexa\u00e7\u00e3o de texto completo e precisa de mais recursos (mem\u00f3ria) que MyISAM. Al\u00e9m disso, voc\u00ea precisa passar algum tempo para otimizar este motor.Dependendo do n\u00edvel de otimiza\u00e7\u00e3o e hardware utilizado, o InnoDB pode ser configurado para correr muito r\u00e1pido, alguns relat\u00f3rios at\u00e9 20 vezes mais r\u00e1pido do que a configura\u00e7\u00e3o padr\u00e3o.<\/p>\n<p>InnoDB n\u00e3o tem tamanho constante para a mesa. Mesmo quando voc\u00ea come\u00e7a tamanhos de mesa, voc\u00ea precisa saber que os valores devolvidos s\u00e3o apenas estimativas.Isto vem de maneira diferente InnoDB processa dados, e por isso ele precisa de mais espa\u00e7o para os dados que MyISAM. Mas, InnoDB \u00e9 muito confi\u00e1vel, devido \u00e0 natureza transacional das opera\u00e7\u00f5es de dados, e torna muito boa escolha para sistemas em opera\u00e7\u00e3o de backup s\u00e3o essenciais e muitas vezes necess\u00e1rio. Tabelas InnoDB s\u00e3o confi\u00e1veis \u200b\u200be tem muitas medidas de seguran\u00e7a implementadas para se certificar de que os dados permane\u00e7am seguros.<\/p>\n<h3>O motor a escolher?<\/h3>\n<p>Bem, isso n\u00e3o \u00e9 coisa f\u00e1cil de responder. Desde o InnoDB agora \u00e9 motor padr\u00e3o (MySQL 5.5), quando voc\u00ea instala o novo WordPress no servidor executando o mais recente do MySQL, voc\u00ea provavelmente ir\u00e1 obter todas as tabelas InnoDB. Se tiver um servidor poderoso com uma grande quantidade de mem\u00f3ria, voc\u00ea n\u00e3o vai notar qualquer lentid\u00e3o (se InnoDB est\u00e1 configurado corretamente), e para muitas opera\u00e7\u00f5es que voc\u00ea pode notar melhorias de velocidade.<\/p>\n<p>Se voc\u00ea tem todas as tabelas do mecanismo MyISAM no banco de dados, voc\u00ea pode considerar a mudan\u00e7a alguns deles a motor InnoDB. N\u00e3o h\u00e1 resposta certa aqui, e tudo depende do que voc\u00ea necessita para o seu banco de dados. Por padr\u00e3o, o WordPress n\u00e3o usa indexa\u00e7\u00e3o de texto completo, por isso torna OK para usar InnoDB. Se precisar de mais confiabilidade dos dados, InnoDB \u00e9 o caminho a percorrer. Desde WordPress n\u00e3o usa chaves estrangeiras para as rela\u00e7\u00f5es de mesa, escolha do motor tamb\u00e9m n\u00e3o \u00e9 importante, tanto vai funcionar bem.<\/p>\n<p>Para sites normais, sem grande tr\u00e1fego, o motor n\u00e3o \u00e9 t\u00e3o importante. Problemas de velocidade entra em jogo, se voc\u00ea tem um monte de tr\u00e1fego em seu site. Nesse caso, para algumas tabelas InnoDB \u00e9 uma boa id\u00e9ia se as tabelas precisam de um monte de atualiza\u00e7\u00e3o.Tipicamente, estas tabelas podem ser <strong>wp_options<\/strong> ,<strong>wp_usermeta<\/strong> , <strong>wp_comments<\/strong> tabelas. Al\u00e9m disso, se voc\u00ea tem algumas tabelas personalizadas (usado para visitas de monitoramento ou outros m\u00e9todos de registro), essas tabelas devem ser tabelas InnoDB, considerando que a escrita com InnoDB \u00e9 linha bloqueada permitindo muito mais threads para usar a tabela que com MyISAM.Tamb\u00e9m \u00e9 preciso considerar que o InnoDB ter\u00e1 mais recursos do que MyISAM, por isso certifique-se de que voc\u00ea tem uma grande quantidade de mem\u00f3ria, ou mesmo para usar servidor separado por apenas MySQL. Se voc\u00ea quiser usar a pesquisa de texto completo para algumas tabelas, n\u00e3o h\u00e1 escolha, voc\u00ea deve usar MyISAM.<\/p>\n<p>Melhor coisa a fazer \u00e9 testar ambos os motores para diferentes tabelas ao longo de um per\u00edodo (de novo, considere os recursos do servidor), e para encontrar a configura\u00e7\u00e3o de algumas tabelas com InnoDB e MyISAM alguns com equil\u00edbrio. Al\u00e9m disso, certifique-se de verificar as configura\u00e7\u00f5es do MySQL para ambos os tipos de motores e consulte o administrador do sistema para certificar-se de que ambos s\u00e3o configurados para o melhor desempenho (isto \u00e9 muito importante para InnoDB). encontrar o equil\u00edbrio certo entre estes dois motores podem ganhar-lhe a velocidade extra. Usando apenas um motor \u00e9 uma boa id\u00e9ia se voc\u00ea tiver algum ambiente de replica\u00e7\u00e3o onde os motores diferentes pode afetar o desempenho de replica\u00e7\u00e3o. Nesse caso InnoDB provou como uma escolha melhor.<\/p>\n<p>Eu acho que o WordPress na pr\u00f3xima revis\u00e3o dos principais (talvez para 3.4 ou 3.5) deve considerar a defini\u00e7\u00e3o de motores para cada tabela com base na fun\u00e7\u00e3o prim\u00e1ria da tabela. Isso seria necess\u00e1rio alguns testes em profundidade, mas que valeria a pena ter melhor escolha de motores de o ir buscar.<\/p>\n<p>Se voc\u00ea precisar de alguma informa\u00e7\u00e3o mais aprofundada sobre os mecanismos de otimiza\u00e7\u00e3o e escolha do motor, eu recomendo que voc\u00ea verifique seguintes sites:<\/p>\n<ul>\n<li>MySQL Desempenho Blog:\u00a0<a href=\"http:\/\/www.mysqlperformanceblog.com\/\" target=\"_blank\">www.mysqlperformanceblog.com<\/a><\/li>\n<li>MySQL 5.5 Armazenamento Motores:<a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.5\/en\/storage-engines.html\" target=\"_blank\">dev.mysql.com\/doc\/refman\/5.5\/en\/storage-engines.html<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>http:\/\/docs.dev4press.com\/tutorial\/wordpress\/choosing-mysql-database-engine-myisam-or-innodb\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress \u00e9 projetado para funcionar apenas no banco de dados MySQL. Ent\u00e3o, otimizando MySQL \u00e9 uma coisa muito importante se voc\u00ea deseja executar WordPress o mais r\u00e1pido poss\u00edvel sobre o hardware que voc\u00ea usa. Mas, isso pode n\u00e3o ser t\u00e3o simples como voc\u00ea pode coisa,&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_angie_page":false,"page_builder":"","footnotes":""},"categories":[13],"tags":[],"class_list":["post-2911","post","type-post","status-publish","format-standard","hentry","category-msql"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/2911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=2911"}],"version-history":[{"count":0,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/2911\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=2911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=2911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=2911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}