Honderd miljoen records toevoegen

Door PHP erik, 22 jaar geleden, 4.561x bekeken

Hieronder vind je een script om een textbestand vol te laden met random gegevens om deze later in je database te gooien.

Het tweede script is voor MySQL, de onderste voor PostgreSQL. Let op de volgende dingen:
- PHP's max execution time moet uit staan
- Je krijgt na een half uurtje een error 500, maar je database gaat gewoon door

Op een P4, 2,8ghz, 512mb PC duurt 50 miljoen records ongeveer 30 minuten om in database in te laden als er een PRIMARY KEY (of INDEX) is. Anders duurt het ongeveer 2 a 5 minuten. Het aanmaken van de textfile gaat iets sneller.

Bij onderstaand script ben ik uitgegaan van een dergelijke table:

id bigint(10) primary key
getalgroot bigint(12)
tijd timestamp
getalletje smallint(1)

Gesponsorde koppelingen

PHP script bestanden

  1. honderd-miljoen-records-toevoegen

 

Er zijn 11 reacties op 'Snippets'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
EdwinG
EdwinG
22 jaar geleden
 
0 +1 -0 -1
Om eerlijk te zijn ontgaat het nut van dit script mij een beetje, waarom zou iemand een database willen vullen met een groot aantal willekeurig gegenereerde gegevens? (behalve voor analyse van de rand() functies)
Eris -
Eris -
22 jaar geleden
 
0 +1 -0 -1
stress test!
Leon Kunst
Leon Kunst
22 jaar geleden
 
0 +1 -0 -1
hehe tof, maar als ik dit op m'n broers server uittest gaat ie onnaroepelijk onderuit....

ik laat dit over aan andere waaghalzen, wel leuk script trouwens!
PHP erik
PHP erik
22 jaar geleden
 
0 +1 -0 -1
Quote:
Om eerlijk te zijn ontgaat het nut van dit script mij een beetje, waarom zou iemand een database willen vullen met een groot aantal willekeurig gegenereerde gegevens? (behalve voor analyse van de rand() functies)
Ikzelf om een SELECT query in 100 miljoen records te kunnen testen en verschillen tussen datatypes, indexes, engines en databases te kunnen analyseren. Ik denk dat wel meer mensen graag eens wat speedtests zouden willen doen. Als men maar bedenkt dat je hier alles vanuit 1 user doet, en ik werkelijkheid veel users een database gebruiken (daar is PostgreSQL juist zo sterk in).
Woopie100
Woopie100
22 jaar geleden
 
0 +1 -0 -1
Om eerlijk te zijn ontgaat het nut van dit script mij een beetje, waarom zou iemand een database willen vullen met een groot aantal willekeurig gegenereerde gegevens? (behalve voor analyse van de rand() functies)

Ik heb dit nodig, ik wil nl. een map (landschap maken) en die heeft 1 miljoen verschillende stukjes dus ik heb dit wel nodig :)

BEDANKT !!!

_o_ PHPerik _o_


22 jaar geleden
 
0 +1 -0 -1
@PHPerik
Is dit ook onderdeel van je grote project?

Veder leuk om te testen maar voor de rest.
Amro
amro
22 jaar geleden
 
0 +1 -0 -1
Ik heb een vraagje. Ik ben bezig met het bouwen van een online bedrijvengids en ik wou vragen of ik dit script ook kan gebruiken om mijn database te vullen want als mijn database leeg is gaat geen hond er zoeken natuurlijk.
Dus Erik. ik zou hem eventueel heel nuttig vinden.

Amro
Jimm
Jimm
22 jaar geleden
 
0 +1 -0 -1
@amro

dit script genereerd random nummers, en php heeft tot zover ik weet geen rand() functie om bedrijven in een database te zetten ;)
Andre
andre
22 jaar geleden
 
0 +1 -0 -1
@AMRO

Als je snel je database wilt vullen met bestaande data staat hier hoe je dat kan doen
http://dev.mysql.com/doc/refman/5.1/en/loading-tables.html
succes
Mark
Mark
20 jaar geleden
 
0 +1 -0 -1
dit zou je bv voor een staatsloterij kunnen gebruiken toch?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Mike van Dongen
Mike van Dongen
20 jaar geleden
 
0 +1 -0 -1
Is mogelijk met
SELECT * FROM table ORDER BY RAND() LIMIT 1
dan haalt hij 1 random record uit de DB

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. honderd-miljoen-records-toevoegen

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.