{"id":363,"date":"2011-06-28T15:47:46","date_gmt":"2011-06-28T15:47:46","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=363"},"modified":"2011-09-09T15:48:04","modified_gmt":"2011-09-09T15:48:04","slug":"myisam-vs-innodb","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/","title":{"rendered":"MyISAM vs InnoDB"},"content":{"rendered":"<p>El motor de almacenamiento (storage-engine) es quien almacenar\u00e1, manejar\u00e1 y recuperar\u00e1 informaci\u00f3n de una tabla en particular. Comparando MyISAM vs InnoDB, ninguno se destaca como la soluci\u00f3n para la mayor\u00eda de los casos. Cada uno tiene sus pros y sus contras, por lo tanto al momento de decidir que motor de almacenamiento a utilizar depender\u00e1 mucho del escenario donde se aplique.<\/p>\n<p><strong><em>MyISAM<\/em><\/strong><\/p>\n<p>MyISAM es el motor de almacenamiento por default y est\u00e1 basado en el probado ISAM, incorporando nuevas caracter\u00edsticas pero conservando su fiabilidad.<\/p>\n<p>MyISAM almacena la informaci\u00f3n en tres archivos por tabla, uno para el formato de tabla, otro para los datos y un tercer archivo para los \u00edndices.<\/p>\n<p>Las tablas MyISAM soportan un n\u00famero de filas m\u00e1ximo de aproximadamente ~4.295E+09 y puede tener hasta 64 archivos \u00edndices por tabla.<\/p>\n<p>Los campos Text y Blob pueden ser indexados completamente, lo que es de gran importancia para funciones de b\u00fasqueda.<\/p>\n<p><strong><em>InnoDB<\/em><\/strong><\/p>\n<p>InnoDB es relativamente nuevo comparado con MyISAM. Una de las principales diferencias de InnoDB es el soporte de transacciones e integridad referencial.<\/p>\n<p>InnoDB provee bloqueo a nivel final, en contra del bloqueo a nivel tabla de MyISAM. Esto es, que mientras una consulta est\u00e1 actualizando o insertando una fila, otra consulta puede actualizar una fila diferente al mismo tiempo. Estas caracter\u00edsticas incrementan la performance en concurrencia de m\u00faltiples usuarios.<\/p>\n<p>Otra de las principales caracter\u00edsticas es que permite definir Foreign Key Constraints, lo que permite a los desarrolladores asegurarse que los datos insertados con referencia a otra tabla permanecer\u00e1n v\u00e1lidos (lo que se conoce como integridad referencial)<\/p>\n<ul>\n<li>Comparaci\u00f3n<\/li>\n<\/ul>\n<p>MyISAM, en la mayor\u00eda de los casos ser\u00e1 m\u00e1s r\u00e1pido que InnoDB en selecciones, actualizaciones e inserciones bajo circunstancias normales.<\/p>\n<p>InnoDB tambi\u00e9n es un motor de almacenamiento \u00e1gil, pero se destaca porque incorpora caracter\u00edsticas como bloqueo a nivel filas, transacciones y dise\u00f1o de tablas relacionales. Aunque la primera de las caracter\u00edsticas nombradas solo se destaca en tablas que son \u201cmartilladas\u201d constantes, como por ejemplo una tabla de logs, para el resto de los casos, un bloqueo a nivel tabla es suficiente en condiciones normales.<\/p>\n<p>InnoDB se recupera de errores o reinicios no esperados del sistema a partir de sus logs, mientras que MyISAM requiere una exploraci\u00f3n, reparaci\u00f3n y reconstrucci\u00f3n de \u00edndices de los datos de las tablas que aun no hab\u00edan sido volcadas a disco.<\/p>\n<p><strong><em>Matriz de decisi\u00f3n<\/em><\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td>\u00bfTu tabla va a recibir INSERTs, UPDATEs y DELETES mucho m\u00e1s tiempo de lo que ser\u00e1 consultada?<\/td>\n<td>InnoDB<\/td>\n<\/tr>\n<tr>\n<td>\u00bfNecesitaras hacer b\u00fasquedas full-text?<\/td>\n<td>MyISAM<\/td>\n<\/tr>\n<tr>\n<td>\u00bfPrefieres o requieres dise\u00f1o relacional de bases de datos?<\/td>\n<td>InnoDB<\/td>\n<\/tr>\n<tr>\n<td>\u00bfEs un problema el espacio en disco o memoria RAM?<\/td>\n<td>MyISAM<\/td>\n<\/tr>\n<tr>\n<td>\u00bfDudas?<\/td>\n<td>MyISAM<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Como conclusi\u00f3n final, podemos establecer un empate t\u00e9cnico. No hay ganadores.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El motor de almacenamiento (storage-engine) es quien almacenar\u00e1, manejar\u00e1 y recuperar\u00e1 informaci\u00f3n de una tabla en particular. Comparando MyISAM vs InnoDB, ninguno se destaca como la soluci\u00f3n para la mayor\u00eda de los casos. Cada uno tiene sus pros y sus contras, por lo tanto al momento de decidir que motor de almacenamiento a utilizar depender\u00e1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6469,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-363","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mysql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MyISAM vs InnoDB - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MyISAM vs InnoDB - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"El motor de almacenamiento (storage-engine) es quien almacenar\u00e1, manejar\u00e1 y recuperar\u00e1 informaci\u00f3n de una tabla en particular. Comparando MyISAM vs InnoDB, ninguno se destaca como la soluci\u00f3n para la mayor\u00eda de los casos. Cada uno tiene sus pros y sus contras, por lo tanto al momento de decidir que motor de almacenamiento a utilizar depender\u00e1 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2011-06-28T15:47:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-09-09T15:48:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\" \/>\n\t<meta property=\"og:image:width\" content=\"282\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/\",\"name\":\"MyISAM vs InnoDB - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"datePublished\":\"2011-06-28T15:47:46+00:00\",\"dateModified\":\"2011-09-09T15:48:04+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"width\":282,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MyISAM vs InnoDB\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MyISAM vs InnoDB - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"MyISAM vs InnoDB - Jose Aguilar Blog","og_description":"El motor de almacenamiento (storage-engine) es quien almacenar\u00e1, manejar\u00e1 y recuperar\u00e1 informaci\u00f3n de una tabla en particular. Comparando MyISAM vs InnoDB, ninguno se destaca como la soluci\u00f3n para la mayor\u00eda de los casos. Cada uno tiene sus pros y sus contras, por lo tanto al momento de decidir que motor de almacenamiento a utilizar depender\u00e1 [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2011-06-28T15:47:46+00:00","article_modified_time":"2011-09-09T15:48:04+00:00","og_image":[{"width":282,"height":300,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/","url":"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/","name":"MyISAM vs InnoDB - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","datePublished":"2011-06-28T15:47:46+00:00","dateModified":"2011-09-09T15:48:04+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","width":282,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/myisam-vs-innodb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MyISAM vs InnoDB"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=363"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/363\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/6469"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}