Domanda

Per lo stesso insieme di dati, per lo più con i dati di testo, come si fa i dati (tabella + indice) dimensione di PostgreSQL paragonata a quella di MySQL?

  • PostgreSQL utilizza MVCC, che suggerirebbe la sua dimensione dei dati sarebbe più grande

  • In questa presentazione, il più grande sito blog in Giappone ha parlato la loro migrazione da PostgreSQL a MySQL. Una delle loro ragioni per allontanarsi da PostgreSQL è che le dimensioni dei dati in PostgreSQL era troppo grande (p 41).: Migrazione da PostgreSQL a MySQL a Cocolog, del Giappone più grande Blog Community

  • PostgreSQL ha la compressione dei dati, in modo che dovrebbe rendere la dimensione dei dati più piccolo. Ma MySQL plugin ha anche la compressione.

Qualcuno ha alcuna esperienza reale su come le dimensioni dei dati di PostgreSQL e MySQL confrontano l'un l'altro?

È stato utile?

Soluzione

  • MySQL utilizza MVCC pure, basta controllare InnoDB. Ma, in PostgreSQL è possibile modificare il fattore di riempimento per fare spazio per gli aggiornamenti futuri. Con questo, si in grado di creare un database che dispone di spazi per i dati attuali, ma anche per un po ' futuri aggiornamenti ed eliminazioni. quando autovacuum e HOT fanno le loro cose a destra, la dimensione del database può essere stabile.
  • Il blog è su vecchie versioni, un sacco di cose sono cambiate e PostgreSQL fa un lavoro molto migliore in compressione come ha fatto in passato.
  • compressione dipende dal tipo di dati, configurazione e la velocità pure. tu mettere alla prova per vedere come sta funzionando per voi la situazione.

Ho fatto un paio di conversioni da MySQL a PostgreSQL e in tutti questi casi, PostgreSQL è stata inferiore di circa il 10% (MySQL 5.0 => PostgreSQL 8.3 e 8.4). Questo 10% è stato utilizzato per modificare il fattore di riempimento sulle tavole più aggiornati, questi sono stati impostati su un fattore di riempimento 60 a 70. La velocità era molto meglio (più problemi con oltre 20 utenti simultanei) e la dimensione dei dati è stato stabile, così, senza andare MVCC fuori controllo o vuoto molto indietro.

MySQL e PostgreSQL sono due animali diversi, PostgreSQL è tutto sull'affidabilità cui MySQL è populair.

Altri suggerimenti

Entrambi hanno le loro esigenze di storage nella loro rispettiva documentazione:

MySQL: http://dev.mysql.com /doc/refman/5.1/en/storage-requirements.html
Postgres: http://www.postgresql.org/docs/current/interactive/ datatype.html

Un rapido confronto tra i due non mostrano alcun flagranti "postgres zomg richiede 2 megabyte per memorizzare un campo di bit" differenze di tipo. Suppongo Postgres potrebbe avere maggiore sovraccarico di metadati di MySQL, o ha di estendere i suoi file di dati in blocchi più grandi, ma non riesco a trovare niente di ovvio che Postgres "Rifiuti" spazio per le quali la migrazione a MySQL è la cura.

Vorrei aggiungere che per le colonne grandi magazzini, PostgreSQL si avvale anche di comprimere utilizzando un "membro abbastanza semplice e molto veloce della famiglia LZ di tecniche di compressione"

Per saperne di più su questo, controlla http: // www .postgresql.org / docs / 9,0 / static / storage-toast.html

Non è piuttosto basso livello e probabilmente necessario conoscere, ma dal momento che si sta utilizzando un blog, si può trarre beneficio da esso.

A proposito di indici,

MySQL memorizza i dati whithin l'indice che li rende grande. Postgres non lo fanno. Ciò significa che la dimensione di un indice b-albero in Postgres stoccaggio non dipende dal numero di colonna si estende oi dati digitare la colonna ha.

Postgres supporta anche indici parziali (ad esempio dove lo status = 0), che è una caratteristica molto potente per impedire la costruzione di indici nel corso di milioni di righe quando è necessario solo poche centinaia.

Dal momento che si sta andando a mettere un sacco di dati in Postgres probabilmente troverete pratico per essere in grado di creare indici whitout bloccaggio tabella.

Inviato dal mio iPhone. Ci scusiamo per errori di ortografia e la mancanza di riferimenti

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