Vous n'êtes pas identifié(e).

#1 01/02/2012 06:14:51

rach
Membre

Base de données volumineuse pour cours

Bonjour,

Je dois donner des cours d'administration de base de données basés sur Postgresql. Pour ce cours, je voudrais trouver une base de données libre, assez volumineuse pour tester par exemple les index. Sauriez-vous où je peux trouver une telle base à télécharger ?

Merci d'avance, j'espère ne pas trop sortir des sujets qui sont sensés être abordés dans cette liste.

Hors ligne

#2 01/02/2012 09:35:05

gleu
Administrateur

Re : Base de données volumineuse pour cours

Ça n'en sort pas, pas de soucis smile

Le mieux certainement pour construire une grosse base est d'utiliser l'outil pgbench. L'option -s permet de faire grossir la base qu'il construit lors du mode d'initialisation.

Pour des bases montrant plus de fonctionnalités, le mieux est certainement de regarder du côté du projet Sample Databases (http://pgfoundry.org/projects/dbsamples/). pagila est un excellent exemple, malheureusement faible en taille.

Tout ceci étant dit, je préfère généralement faire mes propres exemples lors des formations pour montrer l'intérêt des index. Quelque chose de ce genre :

$ psql postgres
psql (9.1.2)
Type "help" for help.

postgres=# create database formation;
CREATE DATABASE
postgres=# \c formation
You are now connected to database "formation" as user "guillaume".
formation=# create table t1 (c1 integer, c2 text);
CREATE TABLE
formation=# insert into t1 select i, 'Ligne '||i from generate_series(1, 1000000) as i;
INSERT 0 1000000
formation=# create index i1 on t1(c2);
CREATE INDEX
formation=# analyze t1;
ANALYZE
formation=# explain select * from t1 where c2='Ligne 500000';
                          QUERY PLAN                          
--------------------------------------------------------------
 Index Scan using i1 on t1  (cost=0.00..8.42 rows=1 width=16)
   Index Cond: (c2 = 'Ligne 500000'::text)
(2 rows)

formation=# update t1 set c2='Ligne 500000' where c1%2=1;
UPDATE 500000
formation=# analyze t1;
ANALYZE
formation=# explain select * from t1 where c2='Ligne 500000';
                         QUERY PLAN                         
------------------------------------------------------------
 Seq Scan on t1  (cost=0.00..21958.00 rows=497600 width=16)
   Filter: (c2 = 'Ligne 500000'::text)
(2 rows)

Guillaume.

Hors ligne

#3 01/02/2012 22:13:39

rach
Membre

Re : Base de données volumineuse pour cours

Merci beaucoup Guillaume,

A la fois pour le lien vers Sample Database qui va me permettre d'avoir une base avec des valeurs concrètes et pour l'exemple avec les index.

Bonne journée.

Hors ligne

Pied de page des forums