2015-03-23 21 views
6

WebSQL e IndexedDB sono entrambi API DB per l'accesso (CRUD) al database incorporato sottostante nel browser web. Il che, se non sbaglio, è come SQL per l'accesso (CRUD) qualsiasi database client-server come Oracle, ecc (in molti casi il supporto sia per WebSQL e IndexedDB è accessibile stesso browser)IndexedDB Performance e IndexedDB v/s Confronto delle prestazioni WebSQL

  1. Quindi, lo fa significa che sia WebSQL che IndexedDB stanno accedendo (CRUD) allo stesso database incorporato sottostante e, in tal caso, avranno le stesse prestazioni su tutti i browser Web!
  2. Ma penso che non sia il caso, quindi vuol dire che un browser Web avrà più di un database incorporato sottostante? E perché ci dovrebbero essere 2 database incorporati sottostanti nello stesso browser?

E poiché WebSQL e IndexedDB sono API, quindi significa che non del tutto corretto dire prestazioni di WebSQL e IndexedDB (perché sono più come ricerca/lingua accesso), ma dipende notevolmente sulle prestazioni del sottostante database incorporato. E, come per Google, LevelDB is faster than SQLite

  1. E 'corretto dire che in modo significativo non è la differenza di prestazioni tra WebSQL e IndexedDB, ma le prestazioni del sottostante database integrato?
  2. Quali sono i database incorporati sottostanti per IE, Chrome, browser Android? Non sono riuscito a trovare queste informazioni sul web, qualcuno l'ha mai trovato o compilato mai?

risposta

15

Per affrontare la prima domanda, WebSQL non è mai stato implementato in Internet Explorer o Firefox (http://diveintohtml5.info/storage.html, http://caniuse.com/#feat=sql-storage). In termini di "grandi browser" che lascia Chrome e Safari, entrambi nati da WebKit (anche se dal momento che v28 Chrome è stato eseguito su un fork da WebKit, chiamato "Blink"). In passato entrambi i browser utilizzavano SQLite come database sottostante per WebSQL e IndexedDb, ma Chrome cambiava IndexedDb da SQLite a LevelDB.

Per rispondere alla tua seconda domanda, Chrome utilizza 2 diverse tecnologie di database sottostanti:

WebSQL -> SQLite

IndexedDB -> LevelDB

ho il sospetto che mantengono WebSQL come SQLite come sanno che funziona . WebSQL ora è deprecato e ad un certo punto verrà rimosso, quindi perché dovrebbero passare il tempo a portarlo su LevelDB.

In termini di prestazioni tra WebSQL/IndexedDb rispetto alle prestazioni del database sottostante, dall'esperienza su iOS Safari, sia IndexedDb che WebSQL utilizzano un database SQLite ma differiscono notevolmente nel modo in cui il database sottostante viene costruito e in che modo vengono eseguiti. Nei miei test ho scoperto che WebSQL era due volte più veloce di 1000 inserimenti di database semplici rispetto a IndexedDb su Safari in iOS8.

In termini di tua ultima domanda, ho trovato questo:

Per IE:

WebSQL -> Non supportato

IndexedDB -> Extensible Storage Engine

Per Firefox:

WebSQL -> Not supportato

IndexedDB -> SQLite

Per Safari:

WebSQL -> SQLite

IndexedDB -> SQLite

Per Chrome:

WebSQL -> SQLite

IndexedDB -> LevelDB

(Fonti: Il progetto WebKit, https://bugzilla.mozilla.org/show_bug.cgi?id=837141, http://www.aaron-powell.com/posts/2012-10-05-indexeddb-storage.html)

+0

Sono d'accordo con voi su informazioni sul fatto dato browser supporta WebSQL e IndexedDB o no. Ma non sono sicuro che Extensible Storage Engine sia il database incorporato sottostante per IE. Ho esaminato il Wiki di Extensible Storage Engine e non si fa menzione dello stesso. Perfavore, correggimi se sbaglio. Potrebbe essere SQL Server Compact. Secondo il vostro commento - 'ma differiscono enormemente nel modo in cui il database sottostante è costruito e come si comportano. Potrebbe per favore chiarire questo. Vuoi dire che IndxedDB e WebSQL costruiscono il proprio database nel browser in fase di runtime? – hagrawal

+0

Sulla base dei numerosi articoli che ho letto su Internet, IE utilizza effettivamente ESE come motore di archiviazione sottostante. In particolare, se si accede alla cartella "C: \ Users \% USER% \ AppData \ Local \ Microsoft \ Internet Explorer \ Indexed DB", verranno visualizzati i file creati da IndexedDB. Credo anche che se si ha accesso a una copia dello strumento ESEUtil, si sarebbe in grado di scaricare i contenuti di IndexedDb. –

+0

In termini del mio commento su IndexedDB e WebSQL che sono diversi, questo deriva dall'esperienza dolorosa di provare a utilizzare IndexedDB e WebSQL su iOS8. Considerando che entrambi usano SQLite sotto, WebSQL è due volte più veloce di IndexedDB. Con IndexedDB e WebSQL, quando si tenta di aprire un database, se il database non esiste, viene creato. La grande differenza tra i 2 è che quando chiami openDatabase per WebSQL, devi specificare la dimensione massima del database che desideri creare. Sembra che tu stia facendo molte domande approfondite. Cos'è che devi veramente sapere? –

Problemi correlati