Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2464 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  base de donnée enorme sur pc classique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

base de donnée enorme sur pc classique

n°2309177
sliders_al​pha
Posté le 20-12-2017 à 08:19:50  profilanswer
 

bonjour,
 
je voulais faire un explorateur de blockchain from scratch.
Pour ce faire j'ai parsé toute la blockchain bitcoin et j'ai stocker les info dans une base sqlite.
 
Ma table qui contient les adresse existante fait 430 million de lignes (avec doublons)
je fais tourner ça sur un SSD sata3 et avec 16GB de ram.
 
j'ai voulu creer un index sur la collone des addresse mais la ram monte a 100% puis le pc freeze
j'ai esseyer de faire un select distinct pour ecrire une table mais au bout de 72h la base mouline toujours.
 
pour info une addresse est en base 58 et ressemble a ça :  1Hz96kJKF2HLPGY15JWLB5m9qGNxvt8tH
 
Est-il impossible de creer un index? je croyais que les bdd se debrouillait pour fonctionner quel que soit la machine.
Je suis en train de me demander si je ne devrais pas realiser ma propre solution de stockage :
 
1/
faire un fichier texte par addresse avec l'adresse en nom de fichier dans un dossier "btc_addr"
 
si j'ai besoin d'avoir les info du adresse j'ai juste a ouvrir le fichier (transaction effectué, etc).
si j'ai besoin de savoir si une adresse existe, j'ai juste a tester si le fichier existe
 
je ne m'y connais pas trop en BDD, quelque chose m"echappe?
 
Merci.

mood
Publicité
Posté le 20-12-2017 à 08:19:50  profilanswer
 

n°2309178
LeRiton
Posté le 20-12-2017 à 08:30:50  profilanswer
 

Pourquoi tu ne créé pas ton index avant de réaliser les insertions ?

n°2309179
sliders_al​pha
Posté le 20-12-2017 à 08:36:54  profilanswer
 

toute mes recherche indiquait qu'il fallait creer l'index apres l'insertion sinon il se fragmentait.
 
Du coup dumper la base en fichier texte, creer une base vide avec index et inserer dans la nouvelle base par paquet de 100 000 via python?

n°2309182
LeRiton
Posté le 20-12-2017 à 08:57:16  profilanswer
 

C'est effectivement plus efficace de créer ton index après, le but de ma remarque était de te proposer une solution pour continuer à avancer dans ton projet.

n°2309185
TotalRecal​l
Posté le 20-12-2017 à 09:54:54  profilanswer
 

Si le PC complet freeze c'est qu'il est instable, rien à voir avec SQLite.
 
Et SQLite c'est pas idéal pour les bases énormes (comme tu dis toi même) donc utilise un SGBDR plus robuste.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2309188
sliders_al​pha
Posté le 20-12-2017 à 10:58:23  profilanswer
 

Citation :


C'est effectivement plus efficace de créer ton index après, le but de ma remarque était de te proposer une solution pour continuer à avancer dans ton projet.


 
oui j'entend bien, mais quel est l'impact de creer un index avant d'inserer 430 million de ligne? l'index reste t-il utile?
 

Citation :


Si le PC complet freeze c'est qu'il est instable, rien à voir avec SQLite.  
 
Et SQLite c'est pas idéal pour les bases énormes (comme tu dis toi même) donc utilise un SGBDR plus robuste.


Je vais faire passer un memtest alors.
Passer sous MySql?

n°2309189
flo850
moi je
Posté le 20-12-2017 à 11:08:29  profilanswer
 

Essaye une base de données un peu plus costaud : mysql/postgresql

 

efféctivement, il vaux mieux désactiver les index lors de gros insert et les réactiver ensuite. Si tu le laisse actif, l'insertion est beaucoup plus lente

Message cité 1 fois
Message édité par flo850 le 20-12-2017 à 11:08:52

---------------

n°2309190
TotalRecal​l
Posté le 20-12-2017 à 11:36:33  profilanswer
 

sliders_alpha a écrit :


Citation :


Si le PC complet freeze c'est qu'il est instable, rien à voir avec SQLite.  
 
Et SQLite c'est pas idéal pour les bases énormes (comme tu dis toi même) donc utilise un SGBDR plus robuste.


Je vais faire passer un memtest alors.
Passer sous MySql?


memtest et burnin CPU de ton choix (OCCT, etc).
Concernant le SGBDR MySQL, SQL Server, posgre ou n'importe quoi.
OSEF tant que c'est gratuit et que tu sais t'en servir. SQL Server la version gratos limite la taille de la bdd à 10Go de mémoire.
 


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2309210
rufo
Pas me confondre avec Lycos!
Posté le 21-12-2017 à 10:03:31  profilanswer
 

flo850 a écrit :

Essaye une base de données un peu plus costaud : mysql/postgresql  
 
efféctivement, il vaux mieux désactiver les index lors de gros insert et les réactiver ensuite. Si tu le laisse actif, l'insertion est beaucoup plus lente


Sur Mysql, je confirme, le fait de laisser l'index lors de l'insert influe beaucoup sur les perfs.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2309422
gzii
court-circuit
Posté le 30-12-2017 à 14:14:38  profilanswer
 

Oui, avec 430 millions il faudra quelques jours :D

mood
Publicité
Posté le 30-12-2017 à 14:14:38  profilanswer
 

n°2309440
souk
Tourist
Posté le 31-12-2017 à 15:23:13  profilanswer
 

Tu stoques quoi dans ta base ? Tu veux indexer que les adresses ? Si c'est le cas pars plutôt sur autre chose qu'un sgbd par exemple leveldb ou un truc du genre serait peut-être plus adapté ?


---------------
L'inventeur de la cédille est un certain monsieur Groçon .

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  base de donnée enorme sur pc classique

 

Sujets relatifs
Constructeur, base de données et session[MySQL] Combiner un select classique et un count()
Besoin d'aide en VBA Excel Concatener + déplacement de donnéeEditeur de base de données
Remplacer le contenu d'une colonne dans ma base de donnée SQLImporter base de données 1&1
Connexion à la base impossible sur 1 PCConnexion base access MDE
ACCES Base de Données SAP-ASE 16.0 SP 2 via Internet 
Plus de sujets relatifs à : base de donnée enorme sur pc classique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR