Mysql
 sql >> Database >  >> RDS >> Mysql

Collegamento al database Oracle - equivalente a MySQL?

Mi vengono in mente quattro possibili soluzioni alternative per il tuo scenario:

  1. utilizza nomi di tabelle completamente qualificati durante la query per l'esterno tavolo. MySQL supporta dbname.tablename -syntax per accedere alle tabelle al di fuori dell'ambito del database corrente. Ciò richiede che l'utente attualmente connesso disponga dei diritti appropriati per leggere la tabella richiesta in un altro db fisico.
  2. se il database esterno è in esecuzione su un server MySQL diverso (sulla stessa macchina o tramite una connessione di rete) è possibile utilizzare la replica per aggiornare costantemente una copia di sola lettura della tabella remota. La replica è possibile solo se stai eseguendo due istanze MySQL separate.
  3. usa FEDERATED Motore di archiviazione MySQL per importare virtualmente la tabella nel database corrente. Ciò elimina il requisito di concedere all'utente corrente i diritti di accesso al secondo database poiché le credenziali vengono fornite con il CREATE TABLE -dichiarazione quando si utilizza il FEDERATED motore di archiviazione. Funziona anche con i database in esecuzione su diversi server fisici o diverse istanze MySQL. Penso che questa sarà l'opzione con le prestazioni più scarse e ha alcuni limitazioni - più o meno importanti a seconda del tuo scenario di utilizzo e delle tue esigenze.
  4. Questa è un'estensione del metodo 1. Invece di dover specificare i nomi-tabella completi ogni volta che richiedi informazioni al tuo esterno tabella, puoi semplicemente creare una vista all'interno del database corrente basato su un semplice SELECT <<columns>> FROM <<database>>.<<table>> . Questo assomiglia al modo, il FEDERATED -method funziona, ma è limitato alle tabelle sulla stessa istanza MySQL.

Personalmente considererei il metodo (4) come il più utile, ma gli altri potrebbero anche essere possibili soluzioni alternative a seconda delle tue esigenze.