Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

innodb o myisam

Estas en el tema de innodb o myisam en el foro de Mysql en Foros del Web. hola a todos, estoy empezando una aplicacion web donde manejare una base de datos grande eh visto que e isam no puedo crear las referencias ...
  #1 (permalink)  
Antiguo 14/06/2006, 17:55
 
Fecha de Ingreso: septiembre-2004
Mensajes: 14
Antigüedad: 19 años, 7 meses
Puntos: 0
innodb o myisam

hola a todos, estoy empezando una aplicacion web donde manejare una base de datos grande eh visto que e isam no puedo crear las referencias y puedo ver que en innodb si pero nunca lo eh usado siempre utilizo myisam, cual es la ventaja de usar innodb o en su defecto desventaja.

A grandes rasgos el sistema que estoy usando manejara varias tablas que estaban referenciadas a una principal por decirle asi digamos que tendremos a tabla de usuarios, donde se enlistara cada usuario y ciertos atributos pero tengo otras tablas donde manejare informacion sobre ese usuario abra usuarios que si contengan esa informacion abra usuarios que no, por lo que no quiero manejar una sola tabla, pues la info se repetiria mucho, por ejemplo si hago yo una tabla de direcciones donde contenga calle, numero, pais, ciudad, etc ... pero un usuario tiene varias direcciones , de su casa trabajo, etc. para no repetirlo hago un catalogo de direcciones y solo los referencio por el id de la direccion, etc....

en resumen muchas tablas referenciadas pero no tengo en myisam como referenciarlas y ciento que seria mucho trabajo estar validando la integracion de los datos y la integridad.

espero me puedan ayudar.
  #2 (permalink)  
Antiguo 15/06/2006, 07:48
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Con tu explicación ya haz dado la mayor de las ventajas de usar un tipo de tablas como InnoDB, la integridad referencial. Si la necesitas, usa este tipo de tablas.
  #3 (permalink)  
Antiguo 15/06/2006, 08:26
 
Fecha de Ingreso: septiembre-2004
Mensajes: 14
Antigüedad: 19 años, 7 meses
Puntos: 0
ok muchas gracias,
solo una pregunta mas:
actualmente si trato de crear una tabla de este tipo me la crea de tipo myisam supongo que tengo que activar en algun lado que soporte este tipo, alguna ayuda¿?, consulte el manual de mysql y dice que en un archivo my.cnf pero yo actualemtne no cuento con este archivo, lo creo o hay algun otro lado donde puedo yo activar este tipo de tablas.

por otro lado las consultas y el codigo en php sigue siendo el mismo o cambia¿?
  #4 (permalink)  
Antiguo 15/06/2006, 09:21
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
El codigo php y sql son iguales.
Como creas la tabla, con alguna herramienta cliente como mysql administrator (http://dev.mysql.com/downloads/administrator/1.1.html), o a mano?
Que version de mysql tienes?
Que sistema operativo usas en el servidor?

A las tablas, se le puede agregar un type o engine, segun la version de mysql para indicar de que tipo es. Ejemplo:

Código:
create table tabla
(
    campos.....
)
Type=InnoDB;

o

create table tabla
(
    campos.....
)
Engine=InnoDB;
  #5 (permalink)  
Antiguo 15/06/2006, 09:42
 
Fecha de Ingreso: septiembre-2004
Mensajes: 14
Antigüedad: 19 años, 7 meses
Puntos: 0
mira en el servidor tengo linux con apache y mysql la version de mysql es 3.23 estoy viendo si actualizo a la 4.1

por otra parte mi maquina de desarrollo es un windows 2000 advanced server.
en esta maquina desarrollo todo y luego ya lo trepo al servidor.

actualmente trato de crear la tabla tal como me dices y me las deja myisam, uso phpmyadmin en el servidor y aqui localmente uso una herramienta llamada ems sql manager.

pero bueno el caso es que no puedo crear las tabas innodb supongo es algo de la configuracion de mysql pues lei en el manual que es cambiando una configuracion en el archivo my.cnf pero yo no uso tal archvo hay otra manera o tengo que crear ese archivo ??
  #6 (permalink)  
Antiguo 15/06/2006, 13:05
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
La version de mysql es bastante antigua, estamos en la 5.
Puede que para dicha version haya que "tocar" algo del archivo my.cnf que se encuentra en el servidor Linux. Busca en el archivo my.cnf una lineas iguales o similares a estas y descomentalas:

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /usr/local/var/
#innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
#innodb_log_group_home_dir = /usr/local/var/
#innodb_log_arch_dir = /usr/local/var/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 384M
#innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 100M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

Que distribucion Linux tiene el servidor?
  #7 (permalink)  
Antiguo 15/06/2006, 13:09
 
Fecha de Ingreso: septiembre-2004
Mensajes: 14
Antigüedad: 19 años, 7 meses
Puntos: 0
MUCHAS GRACIAS POR TU AYUDA.

pues ya estuve investigando un poco mas y en mi servidor puedo actualizar a la version 4.1x es un servidor dedicado con mediatemple pero la cuestion es uqe para actualizarlo me tengo que meter al shell y varios comandoy la verdad moverle a eso si me da cosa pues ellos no se hacen responsables asi qe ni modo creo que optare por hacerlo con codigo.

en mi maquina donde programo ya lo solucione pero para meterme al srvidor si me da cosa.

pero gracias por la ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:29.