Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/07/2014, 07:13
Charlie1
 
Fecha de Ingreso: octubre-2013
Mensajes: 30
Antigüedad: 11 años, 2 meses
Puntos: 3
Respuesta: Como particionar tabla mysql

Cita:
Iniciado por quimfv Ver Mensaje
Habria que hacer un analisis completo de esa tabla y del modelo de datos que peude que haya ahi oculto.

Particionar no es el concepto que planteas, particionar es "dividir" una tabla en varias particiones para que siendo varias tablas actuen como si fuera una sola, por ejemplo por fecha ([url]http://infodocs.net/articulo/mysql/particionado-de-tablas-en-mysql[/url]). Separar unos campos de una tabla no seria lo mismo.

Pasos para separar campos.

TablaOriginal
id Pk
campo1
...
campoN

Quiero separar los campos 3 y 25 por ejemplo

Creo una tabla nueva, con su id con un idOriginal que sea una FK a la tablaOriginal

tablaNueva
id PK
idOriginal FK
campo3
campo25

Inserto datos

Código MySQL:
Ver original
  1. INSERT INTO tablaNueva (idOriginal,campo3,campo25)
  2.      SELECT id,campo3,campo25
  3.            FROM tablaOriginal
  4.                 WHERE campo3 IS NOT NULL
  5.                          OR campo25 IS NOT NULL;

Solo copio los datos de aquellos registro que tengan algun dato en esos campos, con ello empiezo a optimizar la bbdd.

Una vez copiados los datos uso [URL="http://dev.mysql.com/doc/refman/5.1/en/alter-table.html"]ALTER TABLE[/URL] para eliminar los campos de la tabla original.

Código MySQL:
Ver original
  1. ALTER TABLE tablaOriginal DROP COLUMN campo3;
  2. ALTER TABLE tablaOriginal DROP COLUMN campo25;

Muchas gracias, fue una solución muy simple y efectiva, de verdad gracias