abonnement Unibet Coolblue
pi_145755236
quote:
0s.gif Op maandag 20 oktober 2014 22:15 schreef xaban06 het volgende:

[..]

Tabel heeft nu 50.000 records, binnen enkele weken wordt dat een paar miljoen en zal vanaf dan dagelijks met ~800 records groeien.
Dan ga je dat verschil wel merken. Eigenlijk zou je alle (select)queries een keer met explain moeten bekijken om te zien waar je nog winst kunt behalen.
  † In Memoriam † maandag 20 oktober 2014 @ 22:26:10 #277
159335 Boze_Appel
Vrij Fruit
pi_145755553
quote:
0s.gif Op maandag 20 oktober 2014 18:53 schreef xaban06 het volgende:
Wat is MySQL trouwens snel zeg als je de juiste indexes toepast :P factor 10 kwa snelheidswinst :D
De juiste engine toepassen scheelt ook enorm. Veel mensen geilen op InnoDB vanwege contrainsts en dergelijke, maar gebruiken het niet of passen het toe op tabellen die amper inserts/updates krijgen maar enkel selects. Dan gewoon lekker naar MyIsam gaan en het scheelt een factor veel in snelheid.

Degelijke DBA bij grotere hoeveelheden is een kunstje apart.
Carpe Libertatem
pi_145755735
quote:
7s.gif Op maandag 20 oktober 2014 22:26 schreef Boze_Appel het volgende:

[..]

De juiste engine toepassen scheelt ook enorm. Veel mensen geilen op InnoDB vanwege contrainsts en dergelijke, maar gebruiken het niet of passen het toe op tabellen die amper inserts/updates krijgen maar enkel selects. Dan gewoon lekker naar MyIsam gaan en het scheelt een factor veel in snelheid.

Degelijke DBA bij grotere hoeveelheden is een kunstje apart.
Professionals zullen het fijne er van weten verwacht ik. Ik doe het gewoon als hobby, op werk heb ik er niks mee te maken.
Ik gebruik ook InnoDB :@

Verhouding is bij mij denk ik 2-3:1 (select:insert).
pi_145756063
quote:
7s.gif Op maandag 20 oktober 2014 22:26 schreef Boze_Appel het volgende:

[..]

De juiste engine toepassen scheelt ook enorm. Veel mensen geilen op InnoDB vanwege contrainsts en dergelijke, maar gebruiken het niet of passen het toe op tabellen die amper inserts/updates krijgen maar enkel selects. Dan gewoon lekker naar MyIsam gaan en het scheelt een factor veel in snelheid.

Degelijke DBA bij grotere hoeveelheden is een kunstje apart.
De vraag is niet zozeer wat de verhouding is tussen selects en inserts / updates. MyISAM kent bijvoorbeeld geen transacties. Die heb je soms gewoon nodig.
Daarnaast kun je in plaats van MySQL ook gewoon bijvoorbeeld Postgresql gebruiken.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  † In Memoriam † maandag 20 oktober 2014 @ 22:46:50 #280
159335 Boze_Appel
Vrij Fruit
pi_145756737
quote:
1s.gif Op maandag 20 oktober 2014 22:35 schreef Monolith het volgende:

[..]

De vraag is niet zozeer wat de verhouding is tussen selects en inserts / updates. MyISAM kent bijvoorbeeld geen transacties. Die heb je soms gewoon nodig.
Voor veel dingen dan ook weer niet. Het is uiteraard net de toepassing wat je nodig hebt.

quote:
Daarnaast kun je in plaats van MySQL ook gewoon bijvoorbeeld Postgresql gebruiken.
Zeker, of het alternatief voor MySQL, MariaDB.
Carpe Libertatem
pi_145757250
quote:
0s.gif Op maandag 20 oktober 2014 22:20 schreef Light het volgende:

[..]

Dan ga je dat verschil wel merken. Eigenlijk zou je alle (select)queries een keer met explain moeten bekijken om te zien waar je nog winst kunt behalen.
idd, zonder de juiste indexes wordt iedere database onwerkbaar traag met datsoort datasets.
Een flinke sloot geheugen in je server helpt ook.
  † In Memoriam † maandag 20 oktober 2014 @ 23:01:59 #282
159335 Boze_Appel
Vrij Fruit
pi_145757480
quote:
14s.gif Op maandag 20 oktober 2014 22:56 schreef KomtTijd... het volgende:

[..]

idd, zonder de juiste indexes wordt iedere database onwerkbaar traag met datsoort datasets.
Een flinke sloot geheugen in je server helpt ook.
En je buffers goed instellen. Van de standaard configs van MySQL of PostgreSQL wordt geen grotere hoeveelheid data vrolijk.

Zonder indexes heb je gewoon een kaartenbak.
Carpe Libertatem
pi_145757571
quote:
7s.gif Op maandag 20 oktober 2014 23:01 schreef Boze_Appel het volgende:

[..]

En je buffers goed instellen. Van de standaard configs van MySQL of PostgreSQL wordt geen grotere hoeveelheid data vrolijk.

Zonder indexes heb je gewoon een kaartenbak.
Een kaartenbak heeft nou meestal juist wel een vorm van indexering. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_145757590
Straks heb ik dus een paar miljoen aan records, deze records haal ik extern op (via http). Deze externe records kunnen dagelijks wijzigen. Deze wijzigingen wil ik meenemen in mijn database.

Per HTTP request kan ik maar 1 record checken, ik kan dus niet meedere records tegelijk controleren.

Ik dacht aan:
De hele dataset poepen naar een array.

Vervolgens met een loop over de array gaan, iedere keer wordt de data in de array vergeleken met de externe data.

Dus ja, er moet een paar miljoen HTTP requests plaatsvinden. Hier ontkom ik niet aan, maar het probleem zit hem in: De externe server is vrij traag, meestal resultaat na 1 seconde, maar soms ook 3-4 seconde.

Met een gemiddelde van 2s response tijd kom ik aan 43.200 requests per dag. Bij een dataset van 10.000.000 records heb ik dus 232 dagen nodig om de volledige dataset te controleren.

Oplossing?

/edit
Nu ik dit schrijf, meerdere HTTP requests tegelijk uitvoeren misschien?
pi_145757602
quote:
14s.gif Op maandag 20 oktober 2014 22:56 schreef KomtTijd... het volgende:

[..]

idd, zonder de juiste indexes wordt iedere database onwerkbaar traag met datsoort datasets.
Een flinke sloot geheugen in je server helpt ook.
Tegen die tijd is het misschien sowieso een idee om een aparte database server te hebben.
  † In Memoriam † maandag 20 oktober 2014 @ 23:05:38 #286
159335 Boze_Appel
Vrij Fruit
pi_145757647
quote:
1s.gif Op maandag 20 oktober 2014 23:04 schreef Monolith het volgende:

[..]

Een kaartenbak heeft nou meestal juist wel een vorm van indexering. :P
Punt, maar je kan niet zoeken op de inhoud van de kaartenbak, alleen wat op het labeltje staat. Dat is an sich een index, maar alleen een primary dan. :P
Carpe Libertatem
pi_145758019
quote:
14s.gif Op maandag 20 oktober 2014 22:56 schreef KomtTijd... het volgende:

[..]

idd, zonder de juiste indexes wordt iedere database onwerkbaar traag met datsoort datasets.
Een flinke sloot geheugen in je server helpt ook.
Een sloot geheugen is alleen zinvol als je ook goede indexes hebt.
pi_145758311
Sowieso kun je bij grote hoeveelheden data beter eens kijken of er niet een geschikt NoSQL database is waar je gebruik van kunt maken.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  dinsdag 21 oktober 2014 @ 14:55:03 #289
59269 Drakire
May Lyssa aid you
pi_145776072
Vraagje:
Ik haal via een api bitcoinprijzen in USD op alsmede de exchange rate van USD naar EUR

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    <?php
header
('Content-Type: text/html; charset=utf-8');
function 
extractData($url$clientName$curr)
{
$ch curl_init($url);
curl_setopt($chCURLOPT_REFERER'Mozilla/5.0 (compatible; ' $clientName' PHP client; '.php_uname('s').'; PHP/'.phpversion().')');
curl_setopt($chCURLOPT_USERAGENT"CakeScript/0.1");
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_SSL_VERIFYHOSTfalse);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
$json curl_exec($ch);
curl_close($ch);
$array json_decode($json,true);
return 
$array;

}

$url 'http://www.bitstamp.net/api/ticker/';
$clientName 'Bitstamp';
$bitstamp extractData($url,$clientName);
$url 'https://www.bitstamp.net/api/eur_usd/';
$clientName 'Blockchain';
$blockchain extractData($url,$clientName);
echo 
"<pre>";
print_r($bitstamp);

print_r($blockchain);
echo 
"</pre>";

?> 

Dit geeft het volgende resultaat:


Nu wil ik het getal dat al resultaat bij high komt (388.00) delen door het getal dat bij sell staat (1.2771)

Alleen weet ik niet hoe ik deze waardes los terugkrijg in php zodat ik bijvoorbeeld
1
2
3
<?php
$price
$high $sell;
?>
kan doen.
pi_145776232
quote:
0s.gif Op dinsdag 21 oktober 2014 14:55 schreef Drakire het volgende:
Vraagje:
Ik haal via een api bitcoinprijzen in USD op alsmede de exchange rate van USD naar EUR
[ code verwijderd ]

Dit geeft het volgende resultaat:
[ afbeelding ]

Nu wil ik het getal dat al resultaat bij high komt (388.00) delen door het getal dat bij sell staat (1.2771)

Alleen weet ik niet hoe ik deze waardes los terugkrijg in php zodat ik bijvoorbeeld
[ code verwijderd ]

kan doen.
$bitstamp en $blockchain zijn beide array. Met $bitstamp['high'] kun je een waarde uitlezen:
1$price = $bitstamp['high'] / $bitchain['sell']
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
  dinsdag 21 oktober 2014 @ 15:06:55 #292
59269 Drakire
May Lyssa aid you
pi_145776540
quote:
Had al gezocht maar kwam er niet uit vanwege de 2 verschillende arrays, achteraf is het toch best simpel :P.
quote:
7s.gif Op dinsdag 21 oktober 2014 14:59 schreef Aether het volgende:

[..]

$bitstamp en $blockchain zijn beide array. Met $bitstamp['high'] kun je een waarde uitlezen:
[ code verwijderd ]

thx.
pi_145827955
heeft iemand verstand van timezones? ik probeer "today 00:00" om te zetten in een timestamp, maar wel afhankelijk van een tijdzone (via DateTime). in de unittest vergelijk ik new-york, amsterdam en die van sydney. maar die van amsterdam blijkt lager te zijn dan die van new-york?

dit is de uitkomt:

America/New_York
string(31) "Wed, 22 Oct 2014 13:34:42 -0400"
int(1413950400)

Europe/Amsterdam
string(31) "Wed, 22 Oct 2014 19:34:42 +0200"
int(1413928800)

Australia/Sydney
string(31) "Thu, 23 Oct 2014 04:34:42 +1100"
int(1413982800)

new-york zou toch het laagst moeten zijn omdat daar het "begin van de dag" het meeste achterloopt?
..///
pi_145828716
Wat doe je precies dan?

Als ik het zo bekijk zouden ze allemaal dezelfde timestamp moeten hebben. Maar de timestamps die jij toont komen in de verste verte niet overeen met de daarbij genoemde datum/tijd, ook de minuten en secondes niet.
pi_145828909
quote:
14s.gif Op woensdag 22 oktober 2014 20:06 schreef KomtTijd... het volgende:
Wat doe je precies dan?

Als ik het zo bekijk zouden ze allemaal dezelfde timestamp moeten hebben. Maar de timestamps die jij toont komen in de verste verte niet overeen met de daarbij genoemde datum/tijd, ook de minuten en secondes niet.
nee de timestamp moet verschillend zijn want ik gebruik "today 00:00" en geen "today" of "-24 hours". de laatste 2 zijn relatief (in verhouding met de huidige timestamp) en zijn voor alle tijdzones hetzelfde, maar het moment van de eerste seconden van de dag moet per tijdzone verschillend zijn. ik dacht dat het westen dan het laagste moest zijn en meer richting het oosten hoger. je kan het zelf testen met:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$timezone 
= new DateTimeZone('America/New_York');
$date =  new DateTime('today 00:00'$timezone);
var_dump($date->format('r'));
var_dump($date->getTimestamp());
echo 
"\n\n";
            
$timezone = new DateTimeZone('Europe/Amsterdam');
$date =  new DateTime('today 00:00'$timezone);
var_dump($date->format('r'));
var_dump($date->getTimestamp());
echo 
"\n\n";
            
$timezone = new DateTimeZone('Australia/Sydney');
$date =  new DateTime('today 00:00'$timezone);
var_dump($date->format('r'));
var_dump($date->getTimestamp());
echo 
"\n\n";            
?>
..///
pi_145829041
Laatste keer dat ik checkte kwam de zon in het oosten op en ging deze in het westen onder :P Dus in het oosten is het eerder middennacht dan in het westen.
pi_145829503
quote:
14s.gif Op woensdag 22 oktober 2014 20:15 schreef KomtTijd... het volgende:
Laatste keer dat ik checkte kwam de zon in het oosten op en ging deze in het westen onder :P Dus in het oosten is het eerder middennacht dan in het westen.
maar de volgorde van de timestamp komt niet overeen met de volgorde van oost naar west, dat is wat ik niet snap :P
..///
pi_145829754
Gezien de tijden in je resultaten wordt 00:00 niet meegenomen.

Afgezien daarvan, wordt de string niet omgezet naar GMT oid en vervolgens omgerekend met de timezone, waarbij vervolgens de timestamp enkel de datum en tijd, maar niet de timezone meerekent?
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_145830692
quote:
0s.gif Op woensdag 22 oktober 2014 20:33 schreef Monolith het volgende:
Gezien de tijden in je resultaten wordt 00:00 niet meegenomen.

Afgezien daarvan, wordt de string niet omgezet naar GMT oid en vervolgens omgerekend met de timezone, waarbij vervolgens de timestamp enkel de datum en tijd, maar niet de timezone meerekent?
Een timestamp kent geen tijdzone, maar als je van een tijd naar een timestamp gaat heb je die tijdzone wel nodig. De timestamp van 2014-10-22 18:00:00+0200 (Amsterdam) is anders dan die van 2014-10-22 18:00:00+0100 (Londen), hoewel het beide keren 18:00 vandaag is.
pi_145830941
quote:
0s.gif Op woensdag 22 oktober 2014 20:52 schreef Light het volgende:

[..]

Een timestamp kent geen tijdzone
Een timestamp is altijd UTC.
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')