[MySQL] Tabella piena

Giulo77

Utente Attivo
15 Mar 2018
30
0
6
46
Ciao a tutti,
utilizzo phpmyadmin devserver e nel mio database ho creato una tabella innoDB dove sono andato a caricare 2.900 documenti di vario tipo in binario. Erroneamente ho lanciato l'esecuzione due volte però ho scoperto questo problema che tra pochi anni di utilizzo mi si ripresenterà di sicuro.
L'esecuzione è terminata dandomi l'errore "full table". Effettivamente dovevo caricare 2,1GB e se vado a vedere nella directory del mio database il file documenti.ibd è di 4GB.
Entrare con PHPMyAdmin non se ne parlava perchè mi dava subito errore di connessione quindi manualmente ho cancellato la tabella ed alcuni file e mi ha permesso di rientrare rifacendo poi creazione tabella e import dati.

Premetto che non ho esperienza con mysql, ho sempre usato db2 o oracle a livello lavorativo e non sistemistico, però penso sia qualcosa relativo alle table space. Non ho però trovato nulla a livello di configurazione che mi dica se usa una table space unica e di quanto o se ne crea automaticamente una di default per ogni tabella creata.

Oltretutto se entro in phpmyadmin per interrogare il db ho sempre un messaggio di errore che mi dice che la configurazione dello storage non è completa. Dice anche di andare nella scheda 'operazioni' del db per configurarlo da li ma mi dice poi che è disabilitata ed il link 'scopri la ragione' mi rimanda ad un elenco di voci $cfg dove in quelle in rosso non compaiono voci relative allo storage ed in ogni caso non sono voci modificabili.

Qualche suggerimento?

A breve dovrei fare una migrazione di un db di 500GB la cui tabella documenti di sicuro peserà cirva 200GB, quindi infattibile con l'attuale configurazione!
 

Giulo77

Utente Attivo
15 Mar 2018
30
0
6
46
Provo a farla più semplice...diciamo di accontentarmi di mysql a 32bit e che il limite della tablespace globale sia di 4GB mi chiedo:
come faccio a sapere come si chiama? lo chiedo perchè se non ho capito male devo fare un'ALTER per aggiungere tanti file quanto spazio ho bisogno.

P.S. Dopo aver creato una tabella esiste qualche comando per indirizzarla su una tablespace particolare? Oppure anche ricreandola come posso dirgli di usare una determinata tablespace con ad esempio 4 file diversi?
 

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18

Giulo77

Utente Attivo
15 Mar 2018
30
0
6
46
Il problema non è tanto il messaggio della configurazione non completa oppure di funzionalità sullo storage a cui non posso accedere (Comunque limitazione a livello grafico perchè da command line si può fare tutto comunque), ma il fatto che non posso andare oltre i 4 GB a livello di database.
Cioè è configurato per utilizzare una sola tablespace condivisa per tutti le tabelle. Posso comunque associarne una nuova alla mia tabella documenti ma come data file posso solo mettrne uno quindi sempre a 4BG rimango.

MyIsAm --> Non posso creare tablespace
InnoDB --> Creo tablespace e l'associo alla mia tabella ma non supporta ALTER TABLESPACE quindi non posso aggiongere altri DATAFILE

Mi chiedo ma quando esisteva solo la versione a 32bit mysql si poteva usare solo con dei database di piccole dimensioni?
Altra domanda che mi sorge spontanea: se esiste un comando per aggiungere datafile a un datatable qual è la situazione per cui è possibile farlo?
 

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
Mi sembra ci sia tutto nella documentazione mysql come https://dev.mysql.com/doc/refman/8.0/en/full-table.html
Il limite dei 4GB se non erro era solo per chi utilizza win 32-bit con fat32.
The size limit of individual files is determined by your operating system. You can set the file size to more than 4GB on operating systems that support large files
Con InnoDB la dimensione massima dipende dal InnoDB Page Size che con 4KB -> 16TB, 8KB -> 32TB, 16KB -> 64TB, 32KB-> 128TB e con 64KB -> 256TB

Mi sembra di aver letto sulla documentazione che c'era un default a 4GB ma adesso non ricordo, scusa.

non supporta ALTER TABLESPACE
da https://dev.mysql.com/doc/refman/8.0/en/alter-tablespace.html
ALTER TABLESPACE Syntax ha scritto:
This statement can be used with NDB and InnoDB tables. It can be used to add a new data file to, or to drop a data file from an NDB tablespace. It can also be used to rename an NDB Cluster Disk Data tablespace or an InnoDB general tablespace.
 

Giulo77

Utente Attivo
15 Mar 2018
30
0
6
46
Sto utilizzando la versione 5.7 e se non ho capito male c'è proprio un bug che limita le tabelle 4GB e probabilmente deve avere qualche altro problema. Si vede che i pacchetti "gratuiti" di easyphp devserver non sono il massimo, acquisterò l'accesso completo per avere le ultime versioni.

Per ora ho risolto creando solo la tabella dei documenti con motore MyISAM.

Prossimamente metterò tutto a 64bit

Dalle mie reminiscenze di oracle volevo creare una tablespace dedicata e quando era InnoDB mi dice che il comando ALTER non è supportato (Penso sempre ad un altro limite di questa versione)
 

Giulo77

Utente Attivo
15 Mar 2018
30
0
6
46
Si win ma è a 64bit, solo mysql è a 32bit...infatti, come dicevo, ho risolto mettendo da InnoDB a MyISAM. Anche questo evidenzia il fatto che è un probabile bug della mia versione di mysql
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
consentimi una riflessione,

é sicuro gestire database così estesi, pieni di "documenti" ?

di sicuro fare un backup di un db da 500 gb a me fa venire le convulsioni,
se dovessi pensare ad un ripristino, do le dimissioni e cambio mestiere

esiste il file system che é un ottimo db per i "documenti" mentre si potrebbero memorizzare nel vero db solo le referenze

esistono validi strumenti per il backup dei "documenti" memorizzati nel file system che cercano di evitare operazioni inutili riducendo tempi e dati trasferiti

ma non volevo disturbarti con i miei pensieri in libertà
 
Discussioni simili
Autore Titolo Forum Risposte Data
S problema con recupero dati tabella mysql PHP 2
E Progressbar estrazione dati da tabella mySQL Ajax 9
D controllare valore in tabella mysql PHP 0
B Crea pdf da tabella mysql "ultima riga modificata" MySQL 4
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
R Errore UPDATE tabella mysql PHP 1
G Rendere dati di una tabella mysql link PHP 22
B Fare calcoli con php da tabella mysql PHP 2
R Visualizzazione tabella Mysql MySQL 0
R [MySQL] importare tabella cvs MySQL 0
R anomalia nella visualizzazione tabella mysql MySQL 1
B inserire valori da una tabella a un altra mysql PHP 34
E Inserimento dati da PHP in tabella MySQL PHP 5
M [MySQL] CREARE UN LINK SU UN DETERMINATO CAMPO DI UNA TABELLA RISULTATO DI UNA QUERY SQL MySQL 3
elpirata [MYSQL] Schedulare evento per update del campo data su tabella MySQL 0
V popolare tabella da mysql PHP 7
G inserimento csv in tabella mysql; problema con struttura PHP 11
S [MySQL] Controllo dati di una tabella in tempo reale MySQL 0
V Creare tabella mysql con php non funziona PHP 1
bianca_dimulescu Gestione tabella e MySQL PHP 4
S gestire una tabella mysql PHP 9
G [MySQL] Errore importazione tabella .sql #1062 - Duplicate entry '592' for key 'PRIMARY' MySQL 20
Trabba [MySQL] Trasformare tabella con totali MySQL 2
S [MySQL] Sapere se una tabella è stata modificata... MySQL 0
M Aggioranre record in tabella PHP MYSQL PHP 2
G [MySQL] Conteggio records su tabella relazionata MySQL 3
Primian Importare dati su tabella MySQL MySQL 3
myprobsql Alias per i valori in un campo di una tabella Database MySql PHP 1
M Inserimento Array prelevato da Database in Php in un altra tabella mysql PHP 0
S recuperare un dato da una tabella mysql per inserirlo in una casella di input jQuery 3
F Spostare dati tabella Mysql in un campo solo di un'altra tabella PHP 1
E php Mysql visualizzazione file *.php in tabella PHP 0
giancadeejay Filtrare dati tabella mysql ed estrarli PHP 4
A esportare dati da tabella mysql a excel mantenendo formattazione PHP 0
C [MySQL] errore nell'importazione tabella con file csv MySQL 0
B [MySQL] copiare campo da tabella ad altra ed eliminarlo MySQL 0
B [MySQL] INSERIRE UTENTE CONNESSO IN TABELLA MySQL 2
K Mostrare tabella PHP e MySQL PHP 0
S Php e mysql, estrazione da una tabella e inserimento in un'altra tabella PHP 14
H problema input e echo più linee di una tabella mysql PHP 13
Z tabella editabile da un DB mysql remoto PHP 1
E link da tabella Mysql a pagina di dettaglio PHP 2
L Modificare dati tabella mysql PHP 2
P Aggiornare Tabella con form ma senza Mysql HTML e CSS 0
A suddivisione dati mysql in tabella PHP 15
J Mysql tabella output in JSON PHP 2
neo996sps [PHP + MySQL] Tabella 5 colonne per N righe con un record per cella PHP 3
A form che si refrescia dopo modifica tabella mysql PHP 2
francesco7 Aiuto! Creazione di una tabella in MySql PHP 2
G Aggiornare colonna tabella automaticamente in MysQl PHP 2

Discussioni simili