è possibile, ma questo introduce una serie di svantaggi:
- tua ottimizzazione del server sarà ora necessariamente essere un compromesso - non è possibile utilizzare tutta la memoria sia per MyISAM o InnoDB (NB: Questo non si applica se sono su server diversi)
- La replica fallisce in un numero di casi limite, perché se si ha una transazione fallita che contiene modifiche ad alcune tabelle MyISAM, non può né eseguirne il commit né il roll back
- È ancora possibile ' t eseguire il backup del server utilizzando MVCC, perché non si otterrà comunque un'istantanea coerente di MyISAM t ables
Fondamentalmente, ti incoraggio a passare interamente a InnoDB. Quindi puoi quasi dimenticarti di MyISAM e non dedicare risorse ad esso, e ottenere tutti i benefici dell'utilizzo di InnoDB. Chiunque pensi che MyISAM sia più veloce non sta sintonizzando correttamente InnoDB, o ha dati così piccoli che a chi importa.
MyISAM esegue scansioni più veloci delle tabelle, ma se lo fai su tavoli di grandi dimensioni, hai problemi più grandi.
Bella risposta MarkR, mi chiedevo in quali "casi limite" la replica di un database InnoDB/MyIsam misto poteva fallire? Utilizzare solo le transazioni che interessano le tabelle InnoDB e MyIsam? Pensi che sia sicuro in ogni altro caso? Grazie –
Se una transazione si verifica sul master che coinvolge le tabelle MyISAM e innodb, commette con successo, viene eseguito il bin-logging, quindi sullo slave, la parte InnoDB non riesce con un deadlock, la transazione verrà ritentata. Tuttavia, la parte MyISAM della transazione non può essere ripristinata, quindi lo schiavo dovrà ripeterlo (e sperare che non accada nulla di brutto) - ma può accadere qualcosa di brutto, e l'intero schiavo si rompe (la replica viene interrotta fino all'intervento manuale) . Ci sono molti altri casi, questo è un esempio che ho appena inventato. – MarkR