Autore Topic: Chiarimento su Tipo e Collation tabelle database mySQL in Joomla 3.5  (Letto 3611 volte)

Offline assospiz

  • Esploratore
  • **
  • Post: 134
    • Mostra profilo
    • SPIZ Associazione di Promozione Sociale

Buongiorno.
Premesso che lato amministrazione non ci vengono segnalati errori di database, ci servirebbe un chiarimento per fare ordine alle idee e nel database.


Con Joomla 3.5 le tabelle del database (il nostro è MySQL 5.5.45-37.4-log) devono avere obbligatoriamente tutte
Tipo = InnoDB
e
Collation = utf8mb4_unicode_ci?


Nel caso alcune fossero:
Tipo = MyISAM o MEMORY
Collation = utf8_unicode_ci o utf8_general_ci o latin1_swedish_ci
dobbiamo fare qualcosa?


E più in generale
la Collation della connessione di MySQL = utf8mb4_unicode_ci?

L'unico posto dove abbiamo trovato qualcosa è
http://forum.joomla.org/viewtopic.php?f=706&t=913699
ma non ci è chiaro se la questione Collation è qualcosa di obbligatorio e vincolante per un buon funzionamento oppure no.

Grazie
Buona giornata
assospiz
« Ultima modifica: 31 Mar 2016, 08:14:52 da assospiz »
SPIZ Associazione di Promozione Sociale
www.spiz.it

Offline alexred

  • Fuori controllo
  • *
  • Post: 25673
  • Sesso: Maschio
  • Esperto in ozio relaxed
    • Mostra profilo
    • AlexRed.com
Ciao assospiz,
no, non credo che la Collation utf8mb4 sia obbligatoria, se c'è Joomla la utilizza e potrai divertirti ad utilizzare le "iconcine" nei contenuti, se non c'è Joomla non la utilizza ma cambia poco.

Offline assospiz

  • Esploratore
  • **
  • Post: 134
    • Mostra profilo
    • SPIZ Associazione di Promozione Sociale

Grazie Alexred.
.
Siccome abbiamo le "chiavi di casa" di SQL, ma tabelle con Collation differente, pensi sia comunque meglio settare la stessa Collation per il database e tutte le tabelle a mano su utf8mb?
« Ultima modifica: 31 Mar 2016, 17:03:21 da assospiz »
SPIZ Associazione di Promozione Sociale
www.spiz.it

Offline alexred

  • Fuori controllo
  • *
  • Post: 25673
  • Sesso: Maschio
  • Esperto in ozio relaxed
    • Mostra profilo
    • AlexRed.com
si, le tabelle di sistema di Joomla 3.5 puoi settarle su utf8mb4

Offline Daniele Pinna

  • Appassionato
  • ***
  • Post: 568
  • Sesso: Maschio
    • Mostra profilo
    • DAPINNA.COM di Daniele Pinna
Mi aggiungo alla tread per chiedere una cosa:

Io ho diversi siti i cui Database hanno usano sia Tabelle con il motore InndoDB sia MyISAM e anche Memory.

Può comportare problemi?
Come si fa a modificare il motore sulle varie Tabelle per farle diventare tutte InnoDB?


Offline MariaElenaBoschi

  • Appassionato
  • ***
  • Post: 469
    • Mostra profilo
http://openskill.info/infobox.php?ID=1412

http://stackoverflow.com/questions/12614541/whats-the-difference-between-myisam-and-innodb
da cui:



MYISAM:

    MYISAM supports Table-level Locking
    MyISAM designed for need of speed
    MyISAM does not support foreign keys hence we call MySQL with MYISAM is DBMS
    MyISAM stores its tables, data and indexes in diskspace using separate three different files. (tablename.FRM, tablename.MYD, tablename.MYI)
    MYISAM not supports transaction. You cannot commit and rollback with MYISAM. Once you issue a command it’s done.
    MYISAM supports fulltext search
    You can use MyISAM, if the table is more static with lots of select and less update and delete.

INNODB:

    InnoDB supports Row-level Locking
    InnoDB designed for maximum performance when processing high volume of data
    InnoDB support foreign keys hence we call MySQL with InnoDB is RDBMS
    InnoDB stores its tables and indexes in a tablespace
    InnoDB supports transaction. You can commit and rollback with InnoDB


Come si fa a modificare il motore sulle varie Tabelle per farle diventare tutte InnoDB?
-------------------------------------------------------------------------
In fase di creazione
mancano 2 giorni alla mia prematura dipartita, saluti a tutti, meb.

Offline Daniele Pinna

  • Appassionato
  • ***
  • Post: 568
  • Sesso: Maschio
    • Mostra profilo
    • DAPINNA.COM di Daniele Pinna

Come si fa a modificare il motore sulle varie Tabelle per farle diventare tutte InnoDB?
-------------------------------------------------------------------------
In fase di creazione


OK, ma quindi è normale avere tabelle che usano un motore e tabelle che ne usano un altro?
Non crea problemi?

Per capirci, ho verificato su un DB di Prestashop e sono tutte InnoDB...


Offline MariaElenaBoschi

  • Appassionato
  • ***
  • Post: 469
    • Mostra profilo
puoi usare il motore che vuoi, avrai performances diverse.

il database di joomla dovrebbe avere tutte le tabelle con lo stesso motore, non credo tu possa settare un motore per ogni tabella alla fine userà quello del db. Le tabelle, se c'è un motivo, possono avere anche diverso collation.

il database non è tutto ciò che appare con phpmyadmin, possono comparire più database. es

Sql44444_1 è un database
ciccio_sessions
ciccio_users etc sono tabelle

Sql44444_2 se esiste può avere diverso motore
mancano 2 giorni alla mia prematura dipartita, saluti a tutti, meb.

Offline Daniele Pinna

  • Appassionato
  • ***
  • Post: 568
  • Sesso: Maschio
    • Mostra profilo
    • DAPINNA.COM di Daniele Pinna
puoi usare il motore che vuoi, avrai performances diverse.

il database di joomla dovrebbe avere tutte le tabelle con lo stesso motore, non credo tu possa settare un motore per ogni tabella alla fine userà quello del db. Le tabelle, se c'è un motivo, possono avere anche diverso collation.

il database non è tutto ciò che appare con phpmyadmin, possono comparire più database. es

Sql44444_1 è un database
ciccio_sessions
ciccio_users etc sono tabelle

Sql44444_2 se esiste può avere diverso motore

Ho segnalato in grassetto un tuo passaggio.
Nello stesso DB, dove c'è solo Joomla! mi ritrova tabella con InnoDB, altre con MyISAM altre due con Memory.
Preciso nello stesso DB, non in database differenti.

Guarda l'immagine in allegato...



Offline MariaElenaBoschi

  • Appassionato
  • ***
  • Post: 469
    • Mostra profilo
non sono un grande esperto di db per cui ti sto dando risposte che a sua volta dopo qualche ricerca mi sono dato io a suo tempo

- Le differenze di motore influiscono sulle performance delle query e viene scelto uno piuttosto che l'altro in base al tipo di dati e uso che ne fa l'applicazione

- La possibilità di avere il motore differente su una tabella serve se stai testando altrimenti può causare problemi di rallentamenti o malfunzionamenti, specialmente quando usi le Join (e J ne fa ampio uso) fai uso di diverse tabelle e non credo sia corretto che si mischino collation e motori.

io uso generalmente Innodb e utf8-general_ci
mancano 2 giorni alla mia prematura dipartita, saluti a tutti, meb.

Offline Daniele Pinna

  • Appassionato
  • ***
  • Post: 568
  • Sesso: Maschio
    • Mostra profilo
    • DAPINNA.COM di Daniele Pinna
Il fatto è che io non ho fatto nessuna modifica...
Me li trovo così su diversi siti... senza sapere perché

Ora li controlli tutti...
Può dipendere dal fatto che alcuni siti sono partiti con Joomla! 1.0 passati per 1.5 etc?

Offline giusebos

  • Fuori controllo
  • *
  • Post: 18345
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
    • Demo iCagenda
ci sono estensioni che spesso fanno uso di file sql con dati di esempio o di configurazione che hanno tabelle di tipo myisam, quindi quando installi ti ritrovi questo pourpury nel db.

Quindi proprio per evitare problemi descritti da mariaelenaboschi, mi è capitato di convertire le tabelle con phpmyadmin menù operazioni dopo aver cliccato sulla tabella.
le tabelle memory non vanno toccate
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline Daniele Pinna

  • Appassionato
  • ***
  • Post: 568
  • Sesso: Maschio
    • Mostra profilo
    • DAPINNA.COM di Daniele Pinna
ci sono estensioni che spesso fanno uso di file sql con dati di esempio o di configurazione che hanno tabelle di tipo myisam, quindi quando installi ti ritrovi questo pourpury nel db.

Quindi proprio per evitare problemi descritti da mariaelenaboschi, mi è capitato di convertire le tabelle con phpmyadmin menù operazioni dopo aver cliccato sulla tabella.
le tabelle memory non vanno toccate

Dal Menu operazioni non vedo la possibilità di modificare il motore del DB...

Offline giusebos

  • Fuori controllo
  • *
  • Post: 18345
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
    • Demo iCagenda
allora non ti è consentito, forse lo puoi fae con un client mysql tipo Mysql workbench o mysqlyog entrabi free
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline Daniele Pinna

  • Appassionato
  • ***
  • Post: 568
  • Sesso: Maschio
    • Mostra profilo
    • DAPINNA.COM di Daniele Pinna
Humm... ok, ora cerco e provo a caricarli sul mio server Linux locale per smanettarci un po' :-)

Grazie per le Info :-)

Offline giusebos

  • Fuori controllo
  • *
  • Post: 18345
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
    • Demo iCagenda
ma seil server è tuo devi avere operazioni o "operations", forse non sei loggato con i privilegi root
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline Daniele Pinna

  • Appassionato
  • ***
  • Post: 568
  • Sesso: Maschio
    • Mostra profilo
    • DAPINNA.COM di Daniele Pinna
No... sto lavorando su un Hosting condiviso, quindi è possibile che abbia qualche limitazione.

Se posso fare questa modifica sul server Locale, esporto il DB, lo modifico (sul server locale) e lo reimporto al posto di quello originale.


Ho guardato alcuni siti vecchi su un server locale (in realtà un NAS QNAP con webserver) e i alcuni vecchi siti Joomla 2,5 (non aggiornati perché erano solo dei TEST) hanno tutte le tabelle impostate come MyISAM (tranne le due in Memory)


Offline MariaElenaBoschi

  • Appassionato
  • ***
  • Post: 469
    • Mostra profilo
puoi sempre sfruttare l'occasione per approfondire l'argomento, in rete c'è molto materiale anche se quello abbastanza valido è in inglese..
In italiano c'è questo:
http://questiontechnews.it/2013/08/differenza-tra-innodb-e-myisam-in-mysql/
http://www.mrwebmaster.it/mysql/differenza-tabelle-tipo-myisam-innodb_7088.html

Nelle vecchie versioni di joomla e così in componenti che più che essere aggiornati sono stati smanacciati per farli andare bene, trovi ancora MYISAM, dopodichè joomla ha incominciato ad usare INNODB

Poi magari puoi fare un articolo ;)
« Ultima modifica: 14 Lug 2016, 20:29:12 da MariaElenaBoschi »
mancano 2 giorni alla mia prematura dipartita, saluti a tutti, meb.

 

Torna su