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

Oracle Database Link - MySQL-ækvivalent?

Jeg kan komme i tanke om fire mulige løsninger til dit scenario:

  1. brug fuldt kvalificerede-tabelnavne, når du forespørger efter den eksterne bord. MySQL understøtter dbname.tablename -syntaks for at få adgang til tabeller uden for det aktuelle databaseomfang. Dette kræver, at den aktuelt tilsluttede bruger har de relevante rettigheder til at læse fra den anmodede tabel i en anden fysisk db.
  2. hvis din eksterne database kører på en anden MySQL-server (enten på den samme maskine eller via en netværksforbindelse), kan du bruge replikering til konstant at opdatere en skrivebeskyttet kopi af fjerntabellen. Replikering er kun mulig, hvis du kører to separate MySQL-instanser.
  3. brug FEDERATED MySQL-lagringsmotor til virtuelt at importere tabellen ind i din nuværende database. Dette ophæver kravet om at give den aktuelle bruger adgangsrettigheder til den anden database, da legitimationsoplysningerne er givet med CREATE TABLE -sætning ved brug af FEDERATED lagermotor. Dette fungerer også med databaserne, der kører på forskellige fysiske servere eller forskellige MySQL-instanser. Jeg tror, ​​at dette vil være den dårligst ydende mulighed og har nogle begrænsninger - mere eller mindre vigtigt afhængigt af dit brugsscenarie og dine krav.
  4. Dette er en udvidelse til metode 1. I stedet for at skulle angive de fuldt kvalificerede-tabel-navne, hver gang du anmoder om oplysninger fra din eksterne tabel, kan du simpelthen oprette en visning inde i din nuværende database baseret på en simpel VÆLG <> FRA <>.<> . Dette ligner måden, FEDERATED -metoden virker, men er begrænset til tabeller på den samme MySQL-instans.

    Personligt ville jeg betragte metode (4) som den mest nyttige - men de andre kunne også være mulige løsninger afhængigt af dine krav.



    1. MariaDB SYSTEM_USER() Forklaret

    2. Hvordan forhindrer SQLParameter SQL-injektion?

    3. Hvordan behandler MySQL ORDER BY og LIMIT i en forespørgsel?

    4. Sådan udskiftes en del af en streng i T-SQL