{"id":973,"date":"2016-02-12T11:15:09","date_gmt":"2016-02-12T17:15:09","guid":{"rendered":"https:\/\/psoluciones.net\/?p=973"},"modified":"2016-02-12T11:15:09","modified_gmt":"2016-02-12T17:15:09","slug":"myisam-o-innodb-elige-tu-motor-de-almacenamiento-mysql","status":"publish","type":"post","link":"https:\/\/emanuelpaxtian.com\/blog\/myisam-o-innodb-elige-tu-motor-de-almacenamiento-mysql\/","title":{"rendered":"\u00bfMyISAM o InnoDB? Elige tu motor de almacenamiento MySQL"},"content":{"rendered":"<div class=\"entry-content\">\n<p>El <strong>motor de almacenamiento<\/strong> (<em>storage-engine<\/em>) se encarga de almacenar, manejar <strong>y recuperar informaci\u00f3n de una tabla<\/strong>. Los motores m\u00e1s conocidos son <strong>MyISAM<\/strong> e <strong>InnoDB<\/strong>. La elecci\u00f3n de uno u otro depender\u00e1 mucho del escenario donde se aplique, pero <a href=\"http:\/\/www.arsys.es\/\"><strong>arsys.es<\/strong><\/a> quiere ayudarnos a conocer mejor estos conocidos motores de almacenamiento.<\/p>\n<p>En la elecci\u00f3n se pretende conseguir la mejor relaci\u00f3n de calidad acorde con nuestra aplicaci\u00f3n.<strong>Si necesitamos transacciones<\/strong>, claves for\u00e1neas y bloqueos, tendremos que escoger <strong>InnoDB<\/strong>. Por el contrario, <strong>escogeremos MyISAM<\/strong> en aquellos casos en los que predominen las <strong>consultas SELECT a la base de datos<\/strong>.<\/p>\n<p><strong>InnoDB<\/strong> dota a MySQL de un motor de almacenamiento transaccional (conforme a ACID) con capacidades de commit (confirmaci\u00f3n), rollback (cancelaci\u00f3n) y recuperaci\u00f3n de fallos. InnoDB realiza bloqueos a nivel de fila y tambi\u00e9n proporciona funciones de lectura consistente sin bloqueo al estilo Oracle en sentencias SELECT. Estas caracter\u00edsticas incrementan el rendimiento y la capacidad de gestionar m\u00faltiples usuarios simult\u00e1neos. No se necesita un bloqueo escalado en InnoDB porque los bloqueos a nivel de fila ocupan muy poco espacio. InnoDB tambi\u00e9n soporta restricciones FOREIGN KEY. En consultas SQL, a\u00fan dentro de la misma consulta, pueden incluirse libremente tablas del tipo InnoDB con tablas de otros tipos.<\/p>\n<p><strong>MyISAM<\/strong> es el motor por defecto. Para crear una tabla InnoDB se debe especificar la opci\u00f3n ENGINE = InnoDB o TYPE = InnoDB en la sentencia SQL de creaci\u00f3n de tabla:<\/p>\n<p><em>CREATE TABLE customers (a INT, b CHAR (20), INDEX (a)) ENGINE=InnoDB;<\/em><\/p>\n<p><em>CREATE TABLE customers (a INT, b CHAR (20), INDEX (a)) TYPE=InnoDB;<\/em><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Ventajas: MyISAM vs InnoDB<\/strong><\/p>\n<p><strong>InnoDB<\/strong><\/p>\n<ul>\n<li>Soporte de transacciones<\/li>\n<li>Bloqueo de registros<\/li>\n<li>Nos permite tener las caracter\u00edsticas ACID (Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en espa\u00f1ol), garantizando la integridad de nuestras tablas.<\/li>\n<li>Es probable que si nuestra aplicaci\u00f3n hace un uso elevado de INSERT y UPDATE notemos un aumento de rendimiento con respecto a MyISAM.<\/li>\n<\/ul>\n<p><strong>MyISAM<\/strong><\/p>\n<ul>\n<li>Mayor velocidad en general a la hora de recuperar datos.<\/li>\n<li>Recomendable para aplicaciones en las que dominan las sentencias SELECT ante los INSERT \/ UPDATE.<\/li>\n<li>Ausencia de caracter\u00edsticas de atomicidad ya que no tiene que hacer comprobaciones de la integridad referencial, ni bloquear las tablas para realizar las operaciones, esto nos lleva como los anteriores puntos a una mayor velocidad.<\/li>\n<\/ul>\n<p><strong>\u00bfA\u00fan tienes dudas de qu\u00e9 motor es el que necesitas? Te ayudamos a tomar tu decisi\u00f3n<\/strong><\/p>\n<p>\u00bfTu tabla va a recibir INSERTs, UPDATEs y DELETES mucho m\u00e1s tiempo de lo que ser\u00e1 consultada? \u00a0Te recomendamos InnoDB<\/p>\n<p>\u00bfNecesitar\u00e1s hacer b\u00fasquedas full-text?\u00a0 \u00a0Tu motor ha de ser MyISAM<\/p>\n<p>\u00bfPrefieres o requieres dise\u00f1o relacional de bases de datos? \u00a0Entonces necesitas InnoDB<\/p>\n<p>\u00bfEs un problema el espacio en disco o memoria RAM? \u00a0Dec\u00e1ntate por MyISAM<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El motor de almacenamiento (storage-engine) se encarga de almacenar, manejar y recuperar informaci\u00f3n de una tabla. Los motores m\u00e1s conocidos son MyISAM e InnoDB. La elecci\u00f3n de uno u otro&hellip;<\/p>\n","protected":false},"author":1,"featured_media":974,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-973","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mysql"],"_links":{"self":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts\/973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/comments?post=973"}],"version-history":[{"count":0,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts\/973\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/media\/974"}],"wp:attachment":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/media?parent=973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/categories?post=973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/tags?post=973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}