Newsgroup: it.comp.software.database
Titolo: [Mysql] tabelle MyIsam Merge

Ciao, sto leggendo un bel libro che parla di mysql e sua amministrazione.
a un certo punto parla di questo tipo di tabelle, 
praticamente tu vedi una tabella virtuale che ha al suo interno i
riferimenti a tabelle più piccole.
sostanzialmente dice che serve per trovare in maniera comoda i dati su
milioni di righe, essendo queste spezzettate in più tabelle.
io ho bisogno (come mai tutta usenet ormai saprà) di cercare da una tabella
(sola lettura) con il massimo della velocità (heap non posso, non ho abb.
memoria) un certo dato.
pensando a una cosa del genere, mi può essere di aiuto spezzettare la
tabellona in 
tabellina_a
tabellina_b
tabellina_[...]
o mysql non prevede la possibilità di cercare per "tabelle e indici" (non so
come esprimermi meglio)
es:
... LIKE "A%" su tabellina_a etc
... LIKE "B%" su tabellina_b etc
[...]
spero di essermi capito/spiegato bene.
ciao e grazie
-- 
vieni, facciamo ancora un'altra foto col colombo in mano.
sarai contenta quando poi tua cugina lo vedrà 
che a venezia siamo stati anche noi...

 
Le tabelle MERGE sono utili e consigliabili solo in due casi:
1) hai una quantità di dati enorme, e l'inserimento di nuovi record
   è molto lenta
2) hai sempre una quantità di dati enorme e stai usando un sistema
   operativo che limita la dimensione delle tabelle a 2 (o 4) GB.
E inoltre, un requisito essenziale per il funzionamento delle tabelle
MERGE è che i dati delle varie tabelle non si sovrappongano, perché
il DBMS di per se non ha nessuno strumento per garantire che la chiave
primaria sia unica fra tutte le tabelle componenti. Quindi vale la pena
di usare tabelle MERGE quando hai dati di tipo temporale, che non vengono
ripetuti (per esempio, chiudi una "tabellina" alla fine di ogni mese, e
sei sicuro che non ci scrivi più).
Praticamente, se hai un server recente e una versione recente di MySQL
(4.1 o 5.0) il problema non si dovrebbe porre. Il caso (1) e' sempre
possibile, se hai molti indici su decine di milioni di record.
Quindi, io ti consiglierei di tenere i dati in una sola tabella, finché è possibile,
e di adottare tabelle MERGE solo se rientri in uno dei casi sopra elencati.
Tieni presente che spezzare i dati in piu' tabelle va contro la teoria
relazionale (non sottovalutare il pericolo delle chiavi primarie duplicate
fra più tabelle), e ti comporta una notevole complicazione nelle query.
ciao
gmax
-- 
 _  _ _  _
(_|| | |(_|><  The Data Charmer
 _|
http://datacharmer.blogspot.com/

 
ho letto con estremo interesse, grazie mille.
che tu sappia: è normale che una tabella heap richieda circa il 300% dello
spazio di una tabella MyIsam?
ciao 


 spazio di una tabella MyIsam?
Sì. Le tabelle HEAP usano il formato dei dati fisso. Se hai un campo VARCHAR(100)
questo campo occuperà sempre 100 caratteri, anche se ne contiene solo 30. Le tabelle
MyISAM e InnoDB, invece, usano il formato dinamico, e quindi risparmiano spazio.
http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html
Questo dipende dal fatto che le tabelle HEAP sono sì velocissime, ma sono
state concepite per dati temporanei, e bisognava sacrificare qualcosa.


 state concepite per dati temporanei, e bisognava sacrificare qualcosa.
<me>
Motion - ottimizzazione campi char - Musso
</me>
grazie ancora


 
prego
