Posts filed under ‘Mysql’

Exportar de una base de datos mysql4 a una mysql 3.23 usando mysqldump

mysqldump –opt -usuario -p base_datos —compatible=mysql323 > fichero_dump.sql

El único problema que plantea es que no incluye los autoincrement que tengamos creados.

En la lista de bugs de mysql se habla de un parche.

Seguiremos investigando …

abril 3, 2007 at 11:19 am Deja un comentario

Para poder conectar a una máquina con mysql 4 desde un cliente de mysql 3

Para poder conectar a una máquina con mysql 4 desde un cliente de mysql 3 usar OLD_PASSWORD(). Esto se debe a que el sistema de claves cambió de  una versión a otra.

GRANT ALL PRIVILEGES ON bbdd.* TO 'usuario'@'maquina' IDENTIFIED BY 'clave'; 
UPDATE mysql.user SET Password = OLD_PASSWORD('clave') WHERE Host = 'maquina' AND User = 'usuario'; 
FLUSH PRIVILEGES

marzo 1, 2007 at 1:28 pm Deja un comentario

Tipo de almacenamiento MERGE.

Sacado del manual de mysql encontramos un tipo de tabla denominada MERGE o MRG_MyISAM que permite juntar el contenido de varias tablas en una sola de modo automático.

Según el manual de mysql:

El motor de almacenamiento MERGE , también conocido como MRG_MyISAM , es una colección de tablas MyISAM idénticas que pueden usarse como una. “Idéntica”significa que todas lsas tablas tienen información de columna e índice idéntica. No puede mezclar tablas en que las columnas se listen en orden distinto, no tengan exactamente las mismas columnas, o tengan los índices en orden distinto. Sin embargo, alguna o todas las tablas pueden comprimirse con myisampack. Consulte Sección 8.2, “myisampack, el generador de tablas comprimidas de sólo lectura de MySQL”. Diferencias en las opciones de las tablas tales como AVG_ROW_LENGTH, MAX_ROWS, o PACK_KEYS no importan.

Cuando crea una tabla MERGE , MySQL crea dos ficheros en disco. Los ficheros tienen nombres que comienzan con el nombre de la tabla y tienen una extensión para indicar el tipo de fichero, Un fichero .frm almacena la definición de tabla , y un fichero .MRG contiene los nombres de las tablas que deben usarse como una. Las tablas no tienen que estar en la misma base de datos que la tabla MERGE misma.

Puede usar SELECT, DELETE, UPDATE, y INSERT en la colección de tablas, Debe tener permisos de SELECT, UPDATE, y DELETE en las tablas que mapea a una tabla MERGE.

Si hace un DROP de la tabla MERGE , sólo borra la especificación MERGE . Las tablas subyacentes no se ven afectadas.

Cuando crea una tabla MERGE , debe especificar una cláusula UNION=(list-of-tables) que indica qué tablas quiere usar como una. Puede especificar opcionalmente una opción INSERT_METHOD si quiere que las inserciones en la tabla MERGE se realicen en la primera o última tabla de la lista UNION . Use un valor de FIRST o LAST para hacer que las inserciones se hagan en la primera o última tabla, respectivamente. Si no especifica una opción INSERT_METHOD o si la especifica con un valor de NO, intentos de insertar registros en la tabla MERGE producen un error.

El siguiente ejemplo muestra cómo crear una tabla MERGE :


mysql> CREATE TABLE t1 (
-> a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> message CHAR(20));
mysql> CREATE TABLE t2 (
-> a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> message CHAR(20));
mysql> INSERT INTO t1 (message) VALUES ('Testing'),('table'),('t1');
mysql> INSERT INTO t2 (message) VALUES ('Testing'),('table'),('t2');
mysql> CREATE TABLE total (
-> a INT NOT NULL AUTO_INCREMENT,
-> message CHAR(20), INDEX(a))
-> TYPE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;

Tenga en cuenta que la columna a está indexada en la tabla MERGE , pero no está declarada como PRIMARY KEY como lo está en las tablas MyISAM subyacente. Esto es necesario ya que una tabla MERGE no puede forzar unicidad en un conjunto de tablas subyacentes.

Tras crear la tabla MERGE, puede realizar consultas que operen en el grupo de tablas como unidad:

mysql> SELECT * FROM total;
+---+---------+
| a | message |
+---+---------+
| 1 | Testing |
| 2 | table |
| 3 | t1 |
| 1 | Testing |
| 2 | table |
| 3 | t2 |
+---+---------+

Tenga en cuenta que puede manipular el fichero .MRG directamente desde fuera del servidor MySQL :

shell> cd /mysql-data-directory/current-database
shell> ls -1 t1 t2 > total.MRG
shell> mysqladmin flush-tables

Para rempaear una tabla MERGE a una colección diferente de tablas MyISAM, puede realizar una de las siguientes opciones:

DROP la tabla MERGE y recrearla.

Use ALTER TABLE tbl_name UNION=(…) para cambiar la lista de tablas subyacentes.

Cambie el fichero .MRG y realice un comando FLUSH TABLE para la tabla MERGE y todas las tablas subyacentes para forzar al motor de almacenamiento a leer el nuevo fichero de definición.

Las tablas MERGE pueden ayudarle a arreglar los siguientes problemas:

Administrar fácilmente un largo conjunto de tablas. Por ejemplo, puede poner datos de meses distintos en tablas separadas, comprimir algunos de ellos con myisampack, y luego crear una tabla MERGE para usarlas como una.

Obtener más velocidad. Puede dividir una tabla grande de sólo lectura basándose en algún criterio, y luego poner las tablas individuales en distintos discos. Una tabla MERGE puede ser mucho más rápida que usar una tabla grande.

Realizar búsquedas más eficientes. Si conoce exactamente lo que busca, puede buscar en sólo una de las tablas divididas y usar una tabla MERGE para las otras. Puede tener distintas tablas MERGE que usen conjuntos no disjuntos de tablas.

Realizar reparaciones más eficientes. Es más fácil de reparar tablas individuales mapeadas en una tabla MERGE que reparar una única tabla grande.

Mapear instantáneamente varias tablas como una. Una tabla MERGE no necesita mantener un índice propio ya que usa los índices de las tablas individuales. Como resultado, las colecciones de tablas MERGE son muy rápidas de crear o remapear. (Tenga en cuenta que debe especificar las definiciones de índices cuando crea una tabla MERGE , incluso cuando no se crean índices.)

Si tiene un conjunto de tablas que une como una tabla grande bajo demanda o batch, debe crear una tabla MERGE sobre ellas bajo demanda. Esto es mucho más rápido y ahorra mucho espacio de disco.

Excede el límite de tamaño del sistema operativo. Cada tabla MyISAM está ligada a este límite, pero una colección de tablas MyISAM no lo está.

Puede crear un alias o sinónimo para una tabla MyISAM definiendo una tabla MERGE que mapee a una tabla. No debería haber un impacto de rendimiento realmente impactante al hacer esto (sólo un par de llamadas indirectas y llamadas memcpy() para cada lectura).

Las desventajas de las tablas MERGE son:

Sólo puede usar tablas MyISAM idénticas para una tabla MERGE .

No puede usar un número de características MyISAM en tablas MERGE . Por ejemplo, no puede crear índices FULLTEXT en tablas MERGE . (Puede crear índices FULLTEXT en las tablas MyISAM subyacentes, puero no puede buscar en la tabla MERGE con búsquedas full-text.)

Si la tabla MERGE no es temporal, todas las tablas subyacentes MyISAM deben ser permanentes. Si la tabla MERGE es temporal, las tablas MyISAM pueden ser cualquier mezcla de tablas temporales y no temporales.

Las tablas MERGE usan más descriptores de fichero. Si 10 clientes usan una tabla MERGE que mapee a 10 tablas, el servidor usa (10*10) + 10 descriptores de fichero. (10 descriptores de ficheros de datos para cada uno de los 10 clientes, y 10 descriptores de ficheros de índice compartidos entre los clients.)

Las lecturas de claves son más lentas. Cuando lee una clave, el motor de almacenamiento MERGE necesita leer en todas las tablas subyacentes para chequear cuál se parece más a la clave dada. Si luego lee el siguiente, el motor MERGE necesita buscar en los buffers de lectura para buscar la siguiente clave. Sólo cuando se usa un búffer de claves el motor necesita leer el siguiente bloque de claves. Esto hace que las claves MERGE sean mucho más lentas en búsquedas eq_ref , pero no mucho más lentas en búsquedas ref . Consulte Sección 7.2.1, “Sintaxis de EXPLAIN (Obtener información acerca de un SELECT)” para más información sobre eq_ref y ref.

enero 18, 2007 at 12:23 pm Deja un comentario


Calendario

julio 2017
L M X J V S D
« Feb    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Posts by Month

Posts by Category