Domanda

Quali sono le strutture dati utilizzate in DBMS come Oracle, MySQL & amp; Sqlite per l'archiviazione e il recupero di record.

È stato utile?

Soluzione

MySQL ha sistemi di archiviazione collegabili. Ciò significa che il motore può utilizzare diversi depositi. Ne ha attualmente 5-6 che puoi usare. E poiché è open source, puoi vedere come è fatto.

SQLite utilizza la propria implementazione B-Tree con journaling. Open source: puoi vederlo.

Firebird e Interbase utilizzano B-Trees con sistemi di controllo delle versioni multi-record per l'archiviazione. Firebird è open source. Vale la pena cercare.

Non posso dire per Oracle , MS SQL Server o altri sistemi di database proprietari, poiché mantengono segrete le informazioni di archiviazione.

Altri suggerimenti

Di solito un'implementazione intelligente di B-Trees

Dall'articolo di Wikipedia collegato sopra:

  

Un albero B di ordine m (il numero massimo di figli per ciascun nodo) è un albero che soddisfa le seguenti proprietà:

     
      
  1. Ogni nodo ha al massimo m figli.
  2.   
  3. Ogni nodo (tranne radice e foglie) ha almeno m & # 8260; 2 figli.
  4.   
  5. La radice ha almeno due figli se non è un nodo foglia.
  6.   
  7. Tutte le foglie appaiono allo stesso livello e contengono informazioni.
  8.   
  9. Un nodo non foglia con k figli contiene k & # 8211; 1 chiavi
  10.   

I vantaggi sono che è possibile accedere ai dati in tempo logaritmico, come nella maggior parte degli alberi di ricerca (come gli alberi binari standard), ma le proprietà di temporizzazione sono migliori nel caso medio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top