Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047

    Insert concorrenti ma no transazioni: MyISAM o InnoDB?

    Premetto che mi sono letto tutti i post e le guide sulla differenza tra InnoDB e MyISAM.

    Da quello che ho potuto raccogliere:
    - MyISAM più performanti in lettura
    - MyISAM offrono ricerca fulltext
    - MyISAM più snelle, semplici da gestire e da backuppare
    - MyISAM consumano meno risorse
    - InnoDB più adatte alle applicazioni concorrenti, in quanto effettuano lock a livello di riga, accodando solo le richieste di quelle query che interessano quella stessa riga
    - InnoDB più performati in inserimento e update
    - InnoDB consentono utilizzo di transazioni e gestione commit
    - InnoDB permettono utilizzo di Foreign Key

    In giro sento dire che "se non c'è necessità di utilizzare transazioni o foreign key conviene usare MyISAM perchè sono più performanti".

    Ora: io NON ho necessità nè di transazioni nè di foreign keys. Però ho un'applicazione che viene acceduta (in lettura e scrittura) da migliaia di utenti contemporaneamente.. mi conviene MyISAM o InnoDB? Non vorrei che ad ogni insert ci fosse il lock della tabella, d'altro canto sento dire che InnoDB è molto dispendioso e non conviene se non si utilizzano transazioni o f.keys. Qual è la vostra opinione? Grazie.
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  2. #2
    Mi sembra che hai scritto tutto te, per cui non capisco quali siano i tuoi dubbi.

    Per un esempio pratico sull'uso di in DB transazionale pensa ad una applicazione di gestione di magazzino e ordini (magari su una intranet) dove si appoggiano, che ne so, degli agenti di vendita.
    Può capitare che due agenti vendano un determinato numero di oggetti di uno stesso stock, e con un DB non-transazionale non saprebbero in tempo reale se gli oggetti che stanno vendendo sono effettivamente reperibili in magazzino.
    Con un DB transazionale, che gestisce le code e non permette la scrittura contemporanea dello stesso record, potresti aiutare i tuoi agenti di vendita a non fare figuracce con i loro clienti.

    Se la tua applicazione invece, altro esempio, gestisce delle News, gestisce 1000 utenti che contemporaneamente inseriscono 100 news diverse, ma senza "pestarsi i piedi a vicenda", allora è preferibile un DB con motore MyIsam in quanto più prestazionale.

    In conclusione.
    La scelta del motore del tuo database deve essere condizionata non solo dalle prestazioni, ma dall'utilizzo finale della tua applicazione.
    Si possono anche sacrificare le prestazioni di un DB (anche se stiamo parlando di tempi che magari non raggiungono neanche il secondo) sull'altare della sicurezza dei dati. Tutto dipende da quello di cui necessiti!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    Grazie della risposta.

    I miei dubbi sono relativi prettamente alle PRESTAZIONI: nel post originale ho specificato che non ho necessità nè di transazioni nè di foreign keys.

    L'applicazione consiste sia in numerose (migliaia al minuto) letture, sia in numerosi (sempre migliaia al minuto) inserimenti e update. Mi chiedo quindi se "MYISAM è più performante" sia vero solo per le letture, ma se invece vado a guardare le insert e le update il fatto che MyISAM mi locki tutta la tabella mi fa crollare le prestazioni in inserimento e update.

    Mi chiedo quindi se sia il caso di rendere MyISAM quelle tabelle che hanno pochi inserimenti ma molte letture e rendere InnoDB quelle tabelle che hanno tanti insert/update concorrenti.

    Ripeto: il mio scopo è massimizzare le prestazioni, non ho problemi riconducibili al tuo esempio dell'articolo disponibile in magazzino.
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  4. #4
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    up. Altre opinioni?
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.