Komentáře k článku

Kompletní průvodce po CouchDB – III

Po dvou teoretičtějších částech konečně opravdu začínáme. V této kapitole Kompletního průvodce po CouchDB si ukážeme, jak k CouchDB přistupovat pomocí HTTP dotazů a jak spustit a použít zabudovaný administrační nástroj Futon. Vytvoříme si první dokument a podíváme se, jak pracovat s pohledy (views).

Zpět na článek

7 komentářů k článku Kompletní průvodce po CouchDB – III:

  1. Petr

    Proč je to rychlejší

    Asi je to tím, že jsem s NoSQL databázemi neměl ještě čest, ale vrtá mi hlavou, proč je vlastně mapreduce nad dokumenty rychlejší než dotaz nad relační databází.
    Přece klasický DB engine dokáže zpracovávat data také paralelně, ne?

    1. JakubS

      Re: Proč je to rychlejší

      CouchDB si při uložení dokumentu inkrementálně přepočítá pohledy (indexy). Když se na takový pohled dotážete tak server jen odešle připravené výsledky.

      SQL prochází indexy a počítá výsledky až při dotazu.

      Snad jsem se nedopustil příliš velkého zjednodušení.

      1. Palo

        Re: Proč je to rychlejší

        Nad SQL databazou ked dam:
        select * from xxx where id=123;
        kde id je primary key cize ma unique index tak tiez ziskate z indexu priamo „ofset“ na disku kde ten riadok je.
        Pri
        select * from xxx where name like ‚K%‘;
        si CouchDB asi tiez nepomoze s indexom.

        Co prosim Vas znamena veta: „Když se na takový pohled dotážete tak server jen odešle připravené výsledky.“? On ako vie co sa budem pytat? Alebo sa bavime len o nejako ekvivalente materializovaneho view?

        Ako uz raz niekto napisal. Pri NoSQL databazach pri porovnani s SQL to nema ziadne vyhody. Len vymenite sadu znamych problemov za sadu neznamych problemov.

      2. Franta

        Re: Proč je to rychlejší

        SQL databáze místo toho mají materializované pohledy a persistentní virtuální sloupečky.

  2. Franta

    Prohlížeč jako klient?

    Ad „Protože je JSON přirozeně kompatibilní s JavaScriptem, je ideálním klientem právě webový prohlížeč.“

    Jak se v takovém případě řeší uživatelská oprávnění?

      1. Franta

        Re: Prohlížeč jako klient?

        Pochopil jsem to správně, že místo:

        GRANT UPDATE ON tabulka1 TO uživatel1;

        se píše:

        function(newDoc, oldDoc, userCtx) {
          if (newDoc.author) {
            if(newDoc.author != userCtx.name) {
              throw("forbidden": "You may only update documents with author " +
                userCtx.name});
            }
          }
        }

        a není to ekvivalentní, protože vylučujeme, co uživatel nemůže, místo abychom jen deklarovali, co může?

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=3480