Mi az a keresési táblázat az sql-ben, és mire használják őket?


Legjobb válasz

A keresőtáblák nem annyira „SQL-dolgok”, mint amennyire használják az adatbázis tervezésében. Általában a Adatbázis normalizálásában segítenek a viszonylag statikus adatok, például az országok, államok, városok stb. Nevét tartalmazó táblázatok esetén.

Nem vagyok biztos benne, hogy az adatbázis-tervezési kontextusban létezik-e hivatalos keresési táblázatok definíciója, de ha rájuk gondolok, általában a következő tulajdonságokkal rendelkező táblázatokra gondolok:

  • Konfigurációs vagy leíró adatok vannak bennük, szemben az egyes alkalmazási eseményekre vonatkozó adatokkal.
  • Kicsiek az eseményekhez kapcsolódó táblázatokhoz képest.
  • Ezek beillesztés és olvassa el a táblázatokat, és ha frissítések történnek, ezek ritkák.
  • A csatlakozások többnyire azokban kezdődnek vagy végződnek.
  • Gyakran gondolok rájuk, mint a „Szótár” a szótár tömörítési algoritmusokban .

Néhány példa a keresési táblákra:

  • Alkalmazáskonfigurációs táblák.
  • Földrajzi (mint fent említettük) vagy más leíró táblázatok s uch mint szállítók és beszállítók listája, webáruház termékkatalógus-táblázata stb.
  • Adatközpontot kezelő alkalmazás gépneveinek és gépi hardver tulajdonságainak listája.
  • A webhely felhasználói listája és felhasználói profil adatai (kép, felhasználói leírás stb.). Az olyan dolgok, mint a legutóbb meglátogatott oldal \_nem\_ szerepelnének a keresési táblákban.

Válasz

A sebesség nem igazán a NoSQL adatbázisra váltás hajtóereje. Ha egymás mellett veszi az SQL és a NoSQL adatbázisokat, és összehasonlítja az egyszerű frissítéseket és táblázatból olvasott adatokat, akkor mindkettőnek nagyon gyorsan reagálnia kell az ilyen kérdésekre.

A legfontosabb különbség az, hogy a NoSQL adatbázisokat kifejezetten az egyszerű kezelésére tervezték. alacsony szintű lekérdezések, lehetővé teszik, hogy beszerezzen, beállítson és még néhány más egyszerű dolgot, például tartományokat vagy rendezést. Nagy hátránya, hogy el kell döntenie, hogyan fogja felhasználni az ott betöltött adatokat, és előre megterveznie egy megfelelő sémát, amely lehetővé teszi az adatokhoz való hozzáférést a kívánt formátumban.

Az SQL viszont, ha az Ön által bevitt adatokat helyesen denormalizálják, rendkívül összetett lekérdezéseket képes kezelni. Nem kell sémát terveznie az adott felhasználási eset köré, és a lekérdezési nyelv hatalmas rugalmassággal rendelkezik, amely bármilyen adatot bármilyen formátumban visszaadhat anélkül, hogy módosítania kellene az alapul szolgáló sémát.

Ennek oka Az SQL lassú hírnévnek örvend, mivel egy összetett lekérdezés nagy adatkészleten történő feldolgozása elkerülhetetlenül időt vesz igénybe, míg a NoSQL egyszerűen nem biztosítja a lassú összetett lekérdezések futtatását.

Nincs ezért nem használhat SQL-adatbázist pontosan ugyanúgy, mint a NoSQL-adatbázist. Helyezze az összes adatot nagy táblákba, és használja a legalapvetőbb lekérdezéseket. Ekkor nagyon jól teljesítene egy egyenértékű NoSQL adatbázis mellett, de nyilvánvalóan a leghasznosabb funkciók nagy részét pazarolja. Valójában ez a helyzet sok nagy SQL adatbázisban. A denormalizáció megszakad, és a rugalmasságot feláldozzák az egyes kérdésekre való optimalizálás érdekében.

Az SQL-nek vannak azonban bizonyos hátrányai, és bizonyos esetekben ezek a hátrányok olyan problémává válnak, hogy hajlandóak vagyunk feláldozni azt a rugalmasságot, amelyet nyújt legyőzni őket.

Először is, vízszintesen nem méretezhető jól. Ha megpróbálja felosztani az adatokat sok kisebb gép között, bár nem lehetetlen, óriási hatással lehet a teljesítményre. A nagy SQL adatbázisok nagy teljesítményű, nagyon drága hardvereken futtatnak, hogy megpróbálják fenntartani a megfelelő teljesítményt, míg a NoSQL adatbázisok általában könnyen és olcsón méretezhetők bármilyen méretűre, egyszerűen hozzáadva egy extra árucikk-hardvert egy fürthöz.

Második , és ami a legfontosabb, az SQL nem hibatűrő. Igen, lehetőség van adatok másolására egy második biztonsági másolat gépen, de ezután megduplázza a nagy teljesítményű speciális hardver költségeit, és ennek a hardvernek még erősebbnek kell lennie ahhoz, hogy képes legyen kezelni az önmaguk szinkronizálásának extra terhelését. Hasonlítsa össze ezt például egy Cassandra-fürttel, és tucatnyi kisebb gépet tudna futtatni adatreplikációval, akár több adatközpontra is elosztva, ha szeretné. A terhelés automatikusan eloszlik, a frissítések kiszorulnak a fürtön, és egyetlen gép elvesztését a végfelhasználó nem veszi észre.

Ez a kettő az igazi ok, amiért érdemes választania a két technológia között. Ha az adatbázisa elég kicsi ahhoz, hogy egyetlen gépen elférjen, és a biztonsági másolatból történő visszaállításkor alkalmanként leállások nem jelentenek problémát, használjon SQL-t, ez jelentősen leegyszerűsíti a fejlesztést, és rugalmasan alkalmazkodik az igényekhez. Hatalmas lesz az adatkészleted, vagy szűk SLA-kat kell elérned, menj a NoSQL-re. Bárhol, a kettő között, ítéletet kell indítania, de ne feledje, hogy a NoSQL készségekre jelenleg nagy a kereslet.Érdemes lehet csak így haladni a tapasztalatok megszerzése érdekében.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük