Eu tenho uma tabela em um banco de dados MySQL para o qual innodb_file_per_table
está habilitado. Uma das minhas mesas tem cerca de 20 GB e está crescendo. Como posso particionar a tabela em arquivos separados?
Suponha que eu tenha uma tabela chamada tab1
que está armazenada /var/lib/mysql/db_name/tab1.frm
e o tamanho seja de cerca de 20 GB. Quero particionar essa tabela para dividir em 2 arquivos tab1-1.frm
e tab1-2.frm
cada um com 10 GB.
Definição da tabela:
CREATE TABLE cdr (
gid bigint(20) NOT NULL AUTO_INCREMENT,
id bigint(20) NOT NULL,
start datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
clid varchar(80) NOT NULL DEFAULT '',
src varchar(80) NOT NULL DEFAULT '',
channel varchar(80) NOT NULL DEFAULT '',
duration int(11) NOT NULL DEFAULT '0',
uniqueid varchar(32) NOT NULL DEFAULT '',
dnid varchar(20) NOT NULL DEFAULT '',
service varchar(100) NOT NULL DEFAULT '',
cost int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (gid),
UNIQUE KEY id (id,prefix),
KEY start (start),
KEY clid (clid),
KEY service (service)
) ENGINE=InnoDB AUTO_INCREMENT=37024605 DEFAULT CHARSET=latin1