partitionig su campi di testo varchar | Progettazione di DataBase Relazionali

Topic: Pubblico - Composto da 2 Posts di 2 Utenti.

22 Agosto, 2011 12:54 #1
biagiopas
Utente

biagiopas
Registrato: Mar, 2011
Posts: 17
Offline

salve a tutti
sono da poco venuto a conoscenza della tecnica di Partitionig
vorrei implementarla sul un campo un varchar(2)

tuttavia nel manuale ufficiale 5.6 :

The following string types: CHAR, VARCHAR, BINARY, and VARBINARY.
TEXT and BLOB columns are not supported as partitioning columns.

http://dev.mysql.com/doc/refman/5.6/en/partitioning-columns.html

il manuale dice espressamente che il partizionamento su una colonna varchar non è supportato

***************

in questa discussione si parla della possibilità di partizionare su varchar

http://stackoverflow.com/questions/5407533/mysql-5-5-partition-table-by-a-z

************
facendo una prova prova pratica il partizionamento su varchar sembra funzionare

CREATE TABLE IF NOT EXISTS `employees` (
`id` int(11) NOT NULL,
`fname` varchar(30) DEFAULT NULL,
`lname` varchar(30) DEFAULT NULL,
`hired` date NOT NULL DEFAULT '1970-01-01',
`separated` date NOT NULL DEFAULT '9999-12-31',
`job_code` int(11) NOT NULL,
`store_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1

PARTITION BY RANGE COLUMNS(fname)
(PARTITION p0 VALUES LESS THAN ('ab') ,
PARTITION p1 VALUES LESS THAN ('ac') ,
PARTITION p2 VALUES LESS THAN ('ad') ,
PARTITION p3 VALUES LESS THAN (MAXVALUE)
);

INSERT INTO `dbprova`.`employees` (`id`, `fname`, `lname`, `hired`, `separated`, `job_code`, `store_id`) VALUES ('1', 'aa', 'aa', '1970-01-01', '9999-12-31', '0', '0'), ('2', 'ab', 'ab', '1970-01-01', '9999-12-31', '0', '0');

query SQL: SELECT * FROM `employees` ;
Righe: 2
id fname lname hired separated job_code store_id
1 aa aa 1970-01-01 9999-12-31 0 0
2 ab ab 1970-01-01 9999-12-31 0 0

ALTER TABLE `employees` DROP PARTITION p0

query SQL: SELECT * FROM `employees` ;
Righe: 1
id fname lname hired separated job_code store_id
2 ab ab 1970-01-01 9999-12-31 0 0
********************
è il manuale a non essere aggiornato oppure partizionando su un varchar si rischia?

Ultima modifica 22 Agosto, 2011 12:55 di biagiopas

22 Agosto, 2011 13:40 #2
fuser
Utente

fuser
Registrato: Aug, 2011
Posts: 86
Offline

Il partizionamento sui campi CHAR e VARCHAR funziona.
CHAR è più prestante, quindi è preferibile anche se occupa più spazio.

Condividi su:

Loggati o Registrati per replicare