Autor Tema: innoDb en MySQL  (Leído 3583 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado tekun

  • -^- Elite Silver -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3197
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
innoDb en MySQL
« : julio 30, 2007, 06:33:12 pm »
pues cuando tava creando tablas en mysql, me dijo el mysql Administrator que no podia porque no tenia habilitado el engine innoDb, se lo cambie a MyISAM en el engine default y pude crear la base....


ahora sacandome esa espinita encuentro que en el mysql Administrator no tenia habilitado ese engine mi server.

y ahora me asalta la duda, cual engine es mejor.¿?¿?
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado mxgxw

  • Global Moderator
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 27
  • -Receive: 652
  • Mensajes: 5660
  • Starlet - 999cc
    • mxgxw
Re: innoDb en MySQL
« Respuesta #1 : julio 30, 2007, 07:17:13 pm »
pues cuando tava creando tablas en mysql, me dijo el mysql Administrator que no podia porque no tenia habilitado el engine innoDb, se lo cambie a MyISAM en el engine default y pude crear la base....


ahora sacandome esa espinita encuentro que en el mysql Administrator no tenia habilitado ese engine mi server.

y ahora me asalta la duda, cual engine es mejor.¿?¿?

MyISAM es el motor de BD por defecto en MySQL, tiene la ventaja de que soporta cargas grandes de lecturas... Sin embargo tengo entendido que operaciones de escritura son considerablemente más lentas. La otra gran desventaja es que no provee de integridad referencial, es decir que aunque definas claves foraneas estas no se comprueban, así que no es un RDBM completo si utilizas MyISAM.

InnoDB es un poco más lento en las lecturas de tablas, sin embargo es más rápido en escrituras y posee integridad referencial, lo que garantiza que tus datos mantengan sus relaciones de manera adecuada.

Si necesitas tener una aplicación donde vas a únicamente mostrar datos o llevar registro de cosas, te recomiendo utilices MyISAM, ya que tendras la velocidad de lectura de tu parte.

Si vas a trabajar con transacciones o tu aplicación requiere integridad estricta en los datos, entonces es mejor que trabajes con InnoDB.

Desde MySQL 5, ya se soportan Triggers y Stored Procedures, así que en teoria tenes una base de datos transaccional completa para armar lo que se te venga en gana.

Ahora, no solo esos dos motores existen, hay varios motores, como uno que crea tablas en memoria, utilisimo para tablas temporales que cambian sus datos constantemente...


Desconectado JGuillen™

  • -^- Elite Silver -^-
  • Trade Count: (4)
  • The Communiter-
  • *
  • Thank You
  • -Given: 16
  • -Receive: 1
  • Mensajes: 3454
  • PHP,C#,MySQL,SQL
Re: innoDb en MySQL
« Respuesta #2 : julio 30, 2007, 07:40:02 pm »
Uta compa.. mas claro no me pudo quedar..!  :thumbsup:

Desconectado tekun

  • -^- Elite Silver -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3197
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: innoDb en MySQL
« Respuesta #3 : julio 31, 2007, 04:35:32 pm »
vergonisimo. k+

solo que como me dio err cuando estava el InnoDB, se lo cambie a MyISAM cree mi tabla con una primary Key y cuando estava insertandole datos no me dejo insertar el mismo por segunda ocasion.....

que ondas ahi¿?¿? el MyISAM y la integridad referencial?¿¿?

y puedo trabajar con dos o mas motores en un mismo schema¿? o mediante una aplicación .net





interesante eso de los motores en mysql, es un mundo un tanto diferente para mi, pues estava acostumbrado al sqlServer2000, donde hasta la fecha no se si hay algo que se le parezca a esto del MySql y los engine..
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado rdoggsv

  • Administrator
  • Trade Count: (3)
  • The Communiter-
  • *
  • Thank You
  • -Given: 301
  • -Receive: 488
  • Mensajes: 6402
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: innoDb en MySQL
« Respuesta #4 : julio 31, 2007, 05:11:14 pm »
vergonisimo. k+

solo que como me dio err cuando estava el InnoDB, se lo cambie a MyISAM cree mi tabla con una primary Key y cuando estava insertandole datos no me dejo insertar el mismo por segunda ocasion.....

que ondas ahi¿?¿? el MyISAM y la integridad referencial?¿¿?

y puedo trabajar con dos o mas motores en un mismo schema¿? o mediante una aplicación .net


interesante eso de los motores en mysql, es un mundo un tanto diferente para mi, pues estava acostumbrado al sqlServer2000, donde hasta la fecha no se si hay algo que se le parezca a esto del MySql y los engine..

La integridad de las llaves primarias es una integridad de dominio no integridad referencial

El mejor motor de tabla que utilices depende de cuales son tus intenciones con la tabla.

A la vez innodb tiene row level locking y myisam no.  :thumbsup:

Desconectado stoke

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 10
  • -Receive: 4
  • Mensajes: 342
Re: innoDb en MySQL
« Respuesta #5 : julio 31, 2007, 06:00:25 pm »
El engine que elijas para cada tabla es totalmente indpendiente y no afecta en nada al esquema de la bd, lo que deberias de tener en cuenta es la forma para realizar backups, si todas las tablas de tu base de datos son del tipo MyISAM basta y sobra con que copies la carpeta de la base de datos ubicada en el directorio "data" del directorio base de MySQL, cosa que no podes hacer si es InnoDB, ya que con este engine la unica forma de hacer un backup es mediante un volcado de datos, con el phpMyAdmin, el mysqldump, etc.

Yo he comprobado que el engine MyISAM es mucho mas rapido de lectura que el InnoDB, hice esta prueba con mas o menos 2 millones de registros, el InnoDb es mucho mas rapido para escribir, como dijo rddogs bloquea y se dedica solo a escribir o procesar una transaccion.

En resumen si lo que estas haciendo es probando o una tarea usa el engine MyISAM por que la base de datos solo la copias y te la llevas para otra pc.

Tengo bastante experiencia con .Net y MySQL si tenes dudas preguntame, yo se que en algo te podre ayudar.

Desconectado tekun

  • -^- Elite Silver -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3197
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: innoDb en MySQL
« Respuesta #6 : julio 31, 2007, 06:16:00 pm »
ok. me parece el el engine MyISAM, por la sencilla razón del respaldo XD


pero puedo tener en el mismo Schema ambos engine (MyISAM y InnoDB), claro en tablas diferentes sin ningún problema.

de ser así en mi aplicación vb.net cambiaría algo ?¿
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado stoke

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 10
  • -Receive: 4
  • Mensajes: 342
Re: innoDb en MySQL
« Respuesta #7 : julio 31, 2007, 06:19:37 pm »
si viejo pueden estar ambos y tu aplicacion en .net no cambiaria en nada