abonnement Unibet Coolblue
  FOK!mycroftheld dinsdag 29 april 2014 @ 10:08:05 #101
128465 verified  bondage
niet meer aanwezig op FOK!
pi_139366440
quote:
14s.gif Op dinsdag 29 april 2014 09:59 schreef KomtTijd... het volgende:
Volgens mij kun je year beter helemaal uit de query halen en gewoon zorgen dat je tijdstippen nooit meerdere jaren overspannen.
Als ik year uit de query haal en vervolgens dit jaar uitdraai duurt de query een stuk langer dan met year erin. Blijkbaar heeft de index voor dat veld wel effect. Ik had het primair toegevoegd voor het indexeringsproces omdat er per jaar een losse Sphinx index wordt gemaakt, op deze manier hoeft niet steeds alle data opnieuw verwerkt te worden. Dmv het year veld en bijbehorende index is ook die query een stuk sneller.
pi_139390892
quote:
14s.gif Op dinsdag 29 april 2014 09:59 schreef KomtTijd... het volgende:
Volgens mij kun je year beter helemaal uit de query halen en gewoon zorgen dat je tijdstippen nooit meerdere jaren overspannen.
Dan wil je wel heel zeker weten dat er een index op (auteur, tijdstip) wordt gebruikt. En ik weet niet hoe goed MySQL omgaat met een index die als range wordt gebruikt (BETWEEN) in combinatie met een andere index. Hoe beperkter het resultaat van een index is, hoe beter.
pi_139391221
quote:
14s.gif Op maandag 28 april 2014 23:19 schreef bondage het volgende:

[..]

Dank, ik ga die twee indices even combineren en de query dan nogmaals testen. Ik gebruik geen zerofill dus dat is dan geen probleem gelukkig.

Wat is eigenlijk het voordeel van het combineren van die twee?
Je maakt het MySQL op die manier makkelijker om twee kolommen te gebruiken in een index, waardoor de resultaatset kleiner wordt. En dat helpt weer om de snelheid omhoog te krijgen :) MySQL wordt ook wel beter in het combineren van twee losse indexen, maar dat levert volgens mij nog niet hetzelfde resultaat op.

Overigens is een index op (auteur, year) ook nog steeds te gebruiken als index op auteur maar het is niet te gebruiken als index op year. Als je die ook los nodig hebt, moet je daar dus een aparte index voor maken / houden.
  FOK!mycroftheld dinsdag 29 april 2014 @ 21:31:54 #104
128465 verified  bondage
niet meer aanwezig op FOK!
pi_139391505
quote:
0s.gif Op dinsdag 29 april 2014 21:27 schreef Light het volgende:

[..]

Je maakt het MySQL op die manier makkelijker om twee kolommen te gebruiken in een index, waardoor de resultaatset kleiner wordt. En dat helpt weer om de snelheid omhoog te krijgen :) MySQL wordt ook wel beter in het combineren van twee losse indexen, maar dat levert volgens mij nog niet hetzelfde resultaat op.

Overigens is een index op (auteur, year) ook nog steeds te gebruiken als index op auteur maar het is niet te gebruiken als index op year. Als je die ook los nodig hebt, moet je daar dus een aparte index voor maken / houden.
Duidelijk.

En de year index heb ik inderdaad nodig aangezien die ook in de query van de Sphinx indexer wordt gebruikt. Ik ga nu de bestaande index op auteur verwijderen en van year en auteur een gecombineerde index maken. De losse year index laat ik gewoon staan. Ik post straks de resultaten incl. de output van EXPLAIN. Het aanpassen van de index gaat wel ff duren aangezien het om een erg grote tabel gaat.

Edit: ik kan blijkbaar de bestaande auteur index gewoon wijzigen. Heb year toegevoegd, de server is nu ff bezig.
  FOK!mycroftheld dinsdag 29 april 2014 @ 22:53:26 #105
128465 verified  bondage
niet meer aanwezig op FOK!
pi_139396070
Het duurde even maar de index is klaar. Dit is wat ik nu heb:



Ik ga morgen ff testen, nu ff geen tijd meer voor aangezien ik zo naar bed ga. Moet morgen weer vroeg op.
  woensdag 30 april 2014 @ 15:01:22 #106
187069 slacker_nl
Sicko pur sang
pi_139413227
Omdat ik soms zo loop te miepen over tests:

In theory there is no difference between theory and practice. In practice there is.
  woensdag 30 april 2014 @ 15:30:49 #107
25889 Sitethief
Fulltime Flapdrol
pi_139414166
quote:
0s.gif Op woensdag 30 april 2014 15:01 schreef slacker_nl het volgende:
Omdat ik soms zo loop te miepen over tests:

[ afbeelding ]
:? Wat moet dit voorstellen :?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht >:)
  woensdag 30 april 2014 @ 17:53:19 #108
187069 slacker_nl
Sicko pur sang
pi_139419299
quote:
0s.gif Op woensdag 30 april 2014 15:30 schreef Sitethief het volgende:

[..]

:? Wat moet dit voorstellen :?
100% code coverage! (dit laat Devel::Cover zien en aangezien er weinig perl mensjes zijn ging ik de PHP mensjes spammen :P)

[ Bericht 17% gewijzigd door slacker_nl op 30-04-2014 17:58:32 ]
In theory there is no difference between theory and practice. In practice there is.
pi_139420881
quote:
0s.gif Op woensdag 30 april 2014 17:53 schreef slacker_nl het volgende:

[..]

100% code coverage! (dit laat Devel::Cover zien en aangezien er weinig perl mensjes zijn ging ik de PHP mensjes spammen :P)
Ziet er wel leuk uit, die statistieken :)
Maar wat is er zo bijzonder aan die test met als time 85.9? Die duurt wel erg lang.
  woensdag 30 april 2014 @ 20:59:52 #110
187069 slacker_nl
Sicko pur sang
pi_139427644
quote:
0s.gif Op woensdag 30 april 2014 18:42 schreef Light het volgende:

[..]

Ziet er wel leuk uit, die statistieken :)
Maar wat is er zo bijzonder aan die test met als time 85.9? Die duurt wel erg lang.
Dat is 000-package.t, daarin worden de volgende zaken getest:
1) MANIFEST file ok
2) Modules compilen ok
3) POD (documentatie) syntax ok
4) POD coverage ok (dus doc je ook al je functies)
5) Compilen je scripts ok

Die duren wat langer, echt niet zo spannend allemaal. Dat zijn eigenlijk release-only tests.
In theory there is no difference between theory and practice. In practice there is.
pi_139429634
quote:
0s.gif Op woensdag 30 april 2014 20:59 schreef slacker_nl het volgende:

[..]

Dat is 000-package.t, daarin worden de volgende zaken getest:
1) MANIFEST file ok
2) Modules compilen ok
3) POD (documentatie) syntax ok
4) POD coverage ok (dus doc je ook al je functies)
5) Compilen je scripts ok

Die duren wat langer, echt niet zo spannend allemaal. Dat zijn eigenlijk release-only tests.
Dan snap ik wel dat die tests ook lang duren (in ieder geval in verhouding).
  FOK!mycroftheld woensdag 30 april 2014 @ 22:15:48 #112
128465 verified  bondage
niet meer aanwezig op FOK!
pi_139432778
Hmm, de query is met deze nieuwe index trager geworden. Hij duurde eerst 0,83 seconden, nu 3,46. Ik heb exact dezelfde parameters gebruikt als de vorige keer toen de indices nog niet gecombineerd waren.

Dit is de explain:


Ik heb de query van Light gebruikt aangezien die sowieso al sneller was dan die van mij.

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT count(DISTINCT friend_post.topicid) cnt, u.naam
FROM fok_user u
INNER JOIN fok_post search_user_post
ON search_user_post.auteur = 128465
AND search_user_post.tijdstip BETWEEN UNIX_TIMESTAMP('2014-04-01 00:00:01') AND UNIX_TIMESTAMP('2014-04-26 23:59:59')
AND search_user_post.year = 2014
INNER JOIN fok_post friend_post
ON friend_post.auteur = u.id
AND friend_post.auteur != 128465
AND friend_post.topicid = search_user_post.topicid
GROUP BY u.naam
ORDER BY cnt DESC
LIMIT 100;

FORCE INDEX gebruiken misschien?
pi_139433990
quote:
11s.gif Op woensdag 30 april 2014 22:15 schreef bondage het volgende:
Hmm, de query is met deze nieuwe index trager geworden. Hij duurde eerst 0,83 seconden, nu 3,46. Ik heb exact dezelfde parameters gebruikt als de vorige keer toen de indices nog niet gecombineerd waren.

Dit is de explain:
[ afbeelding ]

Ik heb de query van Light gebruikt aangezien die sowieso al sneller was dan die van mij.
[ code verwijderd ]

FORCE INDEX gebruiken misschien?
Hmm... da's wel onverwacht... het (geschatte) aantal rijen voor de eerste query gaat van 12.000 naar 2.400 en toch is de query veel trager...
  FOK!mycroftheld woensdag 30 april 2014 @ 22:36:02 #114
128465 verified  bondage
niet meer aanwezig op FOK!
pi_139434038
quote:
0s.gif Op woensdag 30 april 2014 22:35 schreef Light het volgende:

[..]

Hmm... da's wel onverwacht... het (geschatte) aantal rijen voor de eerste query gaat van 12.000 naar 2.400 en toch is de query veel trager...
Jup, ik snap er ook niets van :? Ik ga voor de zekerheid toch ff FORCE INDEX proberen.
pi_139434130
quote:
11s.gif Op woensdag 30 april 2014 22:36 schreef bondage het volgende:

[..]

Jup, ik snap er ook niets van :? Ik ga voor de zekerheid toch ff FORCE INDEX proberen.
Ik kan me niet voorstellen dat dat helpt, omdat de juiste index al wordt gebruikt.
  FOK!mycroftheld woensdag 30 april 2014 @ 23:15:39 #116
128465 verified  bondage
niet meer aanwezig op FOK!
pi_139436271
quote:
0s.gif Op woensdag 30 april 2014 22:37 schreef Light het volgende:

[..]

Ik kan me niet voorstellen dat dat helpt, omdat de juiste index al wordt gebruikt.
Zou een gecombineerde index op topic_id en auteur misschien een optie zijn?
pi_139503685
quote:
11s.gif Op woensdag 30 april 2014 23:15 schreef bondage het volgende:

[..]

Zou een gecombineerde index op topic_id en auteur misschien een optie zijn?
Dat lijkt me niet nuttig, in ieder geval niet in die volgorde.
  FOK!mycroftheld maandag 5 mei 2014 @ 16:08:01 #118
128465 verified  bondage
niet meer aanwezig op FOK!
pi_139586419
Heeft de table collation invloed op de gegevens die in de velden staat? Stel dat de table collation op latin1_swedish_ci staat maar de velden in de tabel op utf8_unicode_ci, heeft dit dan gevolgen?

De documentatie zegt hier het volgende over:
quote:
The table character set and collation are used as default values for column definitions if the column character set and collation are not specified in individual column definitions. The table character set and collation are MySQL extensions; there are no such things in standard SQL.
Dit doet mij vermoeden dat het alleen om een standaardwaarde gaat en dit verder geen invloed heeft op de data in de tabel.
pi_139587451
nvmd
..///
pi_139600968
Oh god, heb een boek gekocht over Test driven development, gaat het dan toch nog gebeuren? :P
  maandag 5 mei 2014 @ 22:09:51 #121
178193 Juicyhil
Bekende FOK!ker
pi_139601139
quote:
19s.gif Op maandag 5 mei 2014 22:06 schreef TwenteFC het volgende:
Oh god, heb een boek gekocht over Test driven development, gaat het dan toch nog gebeuren? :P
Ik heb alle bedrijven dat wel eens horen zeggen. Maar nog nooit een bedrijf tegengekomen die het geheel volgens het boekje heeft geïmplementeerd. Jammer hoor. Het scheelt zoveel in tijd en kwaliteit.
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
pi_139601529
quote:
0s.gif Op maandag 5 mei 2014 22:09 schreef Juicyhil het volgende:

[..]

Ik heb alle bedrijven dat wel eens horen zeggen. Maar nog nooit een bedrijf tegengekomen die het geheel volgens het boekje heeft geïmplementeerd. Jammer hoor. Het scheelt zoveel in tijd en kwaliteit.
Krijg binnenkort de kans om een gehele shop vanaf scrap op te zetten, waarbij de oude database slechts als api wordt gebruikt.

:P Ik weet hoe rampzalig niet geteste spaghetticode is, wil het dus deze keer meteen "goed" doen.
Dat het tijd bespaart wil er bij de hogere heren nog niet in, maar heb als excuus gebruikt dat dit verplicht is voor mijn opleiding. (deeltijd hbo).
  maandag 5 mei 2014 @ 22:23:01 #123
178193 Juicyhil
Bekende FOK!ker
pi_139601807
quote:
19s.gif Op maandag 5 mei 2014 22:17 schreef TwenteFC het volgende:

[..]

Krijg binnenkort de kans om een gehele shop vanaf scrap op te zetten, waarbij de oude database slechts als api wordt gebruikt.

:P Ik weet hoe rampzalig niet geteste spaghetticode is, wil het dus deze keer meteen "goed" doen.
Dat het tijd bespaart wil er bij de hogere heren nog niet in, maar heb als excuus gebruikt dat dit verplicht is voor mijn opleiding. (deeltijd hbo).
Ja dan is het zeker een goed voornemen om tests te schrijven. Heb het zelf vaak genoeg in projecten geprobeerd erdoorheen te krijgen, maar dan komt er een deadline om de hoek kijken en krijgt het geen prioriteit meer enzo. :P
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
pi_139601950
quote:
0s.gif Op maandag 5 mei 2014 22:23 schreef Juicyhil het volgende:

[..]

Ja dan is het zeker een goed voornemen om tests te schrijven. Heb het zelf vaak genoeg in projecten geprobeerd erdoorheen te krijgen, maar dan komt er een deadline om de hoek kijken en krijgt het geen prioriteit meer enzo. :P
Hier net zo, een klein bedrijf waar we eigenlijk meer misbruikt worden als helpdesk dan dat we daadwerkelijke nieuwe webapplicaties opzetten.

Prioriteit ligt blijkbaar bij het verminderen van het aantal klikjes dat een inkopertje moet doen :').
pi_139602004
:P Wat dus soms ook een ramp is, omdat de code een ramp is. Oorspronkelijk gemaakt door een 16 jarige als bijbaantje 10 jaar geleden.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')