PBXT e chiavi esterne | Tips & Tricks

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

05 Novembre, 2010 17:25 #1
Sante Caserio
Moderatore

Sante Caserio
Registrato: Jul, 2008
Posts: 99
Offline

Oggi ho iniziato a fare alcune prove con le tabelle PBXT per vedere se si adattano meglio di InnoDB alle esigenze di un cliente. In particolare, provando le chiavi esterne, ho scoperto che:

- PBXT supporta l'azione "SET DEFAULT" in caso di cancellazioni/update nella tabella madre, cosa che InnoDB non supporta.
- Purtroppo la tabella madre e la tabella figlio devono essere entrambe PBXT o entrambe InnoDB.

Non so se questo vi può interessare. Ma ho pensato che, quando uno scopre una cosa che non è scritta nella documentazione, è una buona idea scriverlo sul forum nel caso possa essere utile a qualcun altro.

05 Novembre, 2010 20:12 #2
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

Ciao SanteCaserio

Ti ringrazio per condividere con noi tutti questi tuoi esperimenti e queste tue esperienze.

Io dico che può interessare a tanti, anche perchè mi hai fatto venire un pò di curiosità.

E quindi penso che al più presto approfondiro questo storage engine.

Grazie ancora

algweb


Un tempo ero algweb ora sono g2d

05 Novembre, 2010 23:30 #3
Sante Caserio
Moderatore

Sante Caserio
Registrato: Jul, 2008
Posts: 99
Offline

Allora faccio una correzione e dico cos'altro ho scoperto. Prima però una premessa: tutti i miei testi sono stati fatti con MariaDB 5.2, quindi quello che chiamerò InnoDB è in realtà XtraDB. C'è una piccola probabilità che quello che scriverò non valga su InnoDB.

Allora, prima di tutto ho sbagliato: si può creare una fk su una tabella InnoDB che referenzia un campo su una tabella PBXT. Il contrario però non si può fare.

Su InnoDB il campo referenziato può essere di tipo diverso rispetto alla fk (in qualche caso può avere senso), e anche le dimensioni possono essere diverse, ma con PBXT non si può. Si può però creare una fk che referenzia un campo nella stessa tabella (come InnoDB). Nessun problema sulle fk composte da più colonne.

Domani conto di fare un benchmark per confrontare la velocità di inserimento, cancellazione e lettura su tabella PBXT e InnoDB che usano le chiavi esterne. Sarà assolutamente rozzo e fatto in casa, però renderò pubblici i risultati, giusto perchè la gente possa farsi un'idea.

Condividi su:

Loggati o Registrati per replicare