Gaat het ook zo traag wanneer je order by gebruikt in andere tabellen of alleen in deze?quote:Op vrijdag 12 juli 2013 11:35 schreef Chandler het volgende:
Ja, en het rare is dat er geen filesort gebruikt wordt, dus het orderen gebeurd toch echt wel in het geheugen (als ik check met explain). Dacht zelf ook dat ik de indexes goed had en dat blijkt wel, maar het vervelende blijft dat ik per query met order by een kleine 1000x zolang bezig ben...
Maar hebben jullie tips? oh en de beperkte set van 17m rows zijn in dit geval zo'n 3,5m rows
Geen idee, rest van de tabellen zijn niet zo groot dus daar zal het allemaal wel meevallen... en daar zit het tijdsverlies in deze niet in....quote:Op vrijdag 12 juli 2013 11:38 schreef Purplesparks het volgende:
[..]
Gaat het ook zo traag wanneer je order by gebruikt in andere tabellen of alleen in deze?
Okee, wilde alleen uitsluiten dat het om de 1 of andere vage reden niet aan je sql prog zelf lag.quote:Op vrijdag 12 juli 2013 11:40 schreef Chandler het volgende:
[..]
Geen idee, rest van de tabellen zijn niet zo groot dus daar zal het allemaal wel meevallen... en daar zit het tijdsverlies in deze niet in....
Mijn stiefpa had een programma voor een bedrijf ontwikkeld, bij externe resultaten van bepaalde queries opvragen duurde het soms ook wel tot een minuut lang. Terwijl als hij het daar ter plekke testte een seconde of nog minder. Weet niet exact waar het aanlag maar hij heeft het opgelost. Hij maakte trouwens gebruik van delphi pascal in combinatie met een sql variant.quote:Op vrijdag 12 juli 2013 13:11 schreef Chandler het volgende:
Zowel lokaal als online test ik dit, aangezien mijn lokale test omgeving maar uit zo'n 5m regels bestaat... maar goed, het is een laptop en de online server heeft nogal wat meer power en daar is het zelfs sloom
Query test ik via phpmyadmin, domweg omdat het gemakkelijk is!
En wat doet een index op je WHERE clause én ORDER BY field(s)?quote:Op vrijdag 12 juli 2013 11:35 schreef Chandler het volgende:
Ja, en het rare is dat er geen filesort gebruikt wordt, dus het orderen gebeurd toch echt wel in het geheugen (als ik check met explain). Dacht zelf ook dat ik de indexes goed had en dat blijkt wel, maar het vervelende blijft dat ik per query met order by een kleine 1000x zolang bezig ben...
Maar hebben jullie tips? oh en de beperkte set van 17m rows zijn in dit geval zo'n 0,5m rows
@zoom:
Zonder order by
1 SIMPLE spider ref project_id_2,project_id project_id 9 const,const 536370
Met order by
1 SIMPLE spider index project_id_2,project_id failed 1 NULL 39 Using where
Dat zou in 1 go moeten kunnen.quote:Op donderdag 18 juli 2013 19:57 schreef Darkomen het volgende:
Ik probeer iedereen met een andere ip naar een maintenance pagina te sturen.
Alle subdomeinen, directories en files moeten geredirect worden, behalve de directory /maintenance/, de inhoud ervan, en de file maintenance.php
Een van de 2 niet redirecten lukt wel, maar beiden niet
Wat doe ik fout?
RewriteCond %{REMOTE_ADDR} !=123.456.789.0
RewriteCond %{REQUEST_URI} !=/maintenance.php
RewriteCond %{REQUEST_URI} !^/maintenance($|/)
RewriteRule .* http://www.domain.com/maintenance.php [L]
1 2 3 4 | RewriteEngine on LogLevel info rewrite:trace8 # Dit wil je na testen weer op sane values zetten, dus geen rewrite:info oid. of helemaal weg. RewriteCond %{REQUEST_URI} !=/maintenance(.php)?/? # matched /maintenance.php /maintenance optioneel met / aan het einde RewriteRule .* http://www.domain.com/maintenance.php [L] # volgens mij kanje ook [RL] gebruiken daar. |
Je hebt geloof ik zo'n message-event. Daarop luisteren of er een berichtje binnenkomt. Deze kun je in die daemon vervolgens sturen naar alle clientsquote:Op woensdag 24 juli 2013 15:42 schreef wobbel het volgende:
Iemand ervaring met PHP en Websockets?
Ik gebruik nu http://www.binarytides.com/websockets-php-tutorial/ dit en dat werkt prima voor testen, maar ik wil juist op random momenten data erheen sturen
Hoe kan ik naar alle users die verbinding hebben een berichtje sturen met "hoi leuk dat je een websocket verbinding hebt"? Nu is alles een reactie op een actie van de user/browser.
Maar daar vind ik ook niks in de documentatie hoe ik dat zou moeten doen.quote:Op woensdag 24 juli 2013 15:56 schreef Juicyhil het volgende:
Oh wacht even, dat is een andere. Ik gebruikte deze: http://code.google.com/p/phpwebsocket/
Die had ik ook al gegoogledquote:Op woensdag 24 juli 2013 16:01 schreef Juicyhil het volgende:
http://www.flynsarmy.com/(...)hat-application-2-0/
1 2 3 4 5 6 7 8 9 10 11 12 13 | ------------------------------------------------------------------------------- Private IP :Port #Pseudo Port Peer IP :Port Interface ------------------------------------------------------------------------------- 10.0.0.17 56086 57174 31.13.72.33 443 WAN2 10.0.0.17 56089 57177 74.125.136.189 443 WAN2 10.0.0.17 56092 57180 54.230.8.197 80 WAN2 10.0.0.17 56093 57181 54.230.8.197 80 WAN2 10.0.0.17 56094 57182 54.230.8.197 80 WAN2 10.0.0.17 56095 57183 50.18.122.32 80 WAN2 10.0.0.17 54041 55129 94.245.121.253 3544 WAN2 10.0.0.5 5761 38849 89.184.172.50 5080 WAN1 10.0.0.17 55688 56776 108.160.163.42 80 WAN2 10.0.0.17 55722 56810 74.125.136.18 443 WAN2 |
1 2 3 4 5 6 7 8 9 | <?php $regels = explode("\n", $tekst); $data = array(); foreach ( $regels as $regel ) { $data[] = array_map("trim", explode(" ", $regel)); } ?> |
Exploden op een spatie wordt hem niet, aangezien alle whitespaces uit spaties bestaan (erg lastig, je krijgt dan een array met 100 dingen haha)quote:
1 2 3 | <?php $bier = preg_split('/\s+/', " 10.0.0.17 55722 56810 74.125.136.18 443 WAN2"); ?> |
Dan vervang je eerst in een loopje alle dubbele spaties door een enkele zodat je uiteindelijk maar 1 spatie overhoudt.quote:Op vrijdag 9 augustus 2013 09:46 schreef wobbel het volgende:
Exploden op een spatie wordt hem niet, aangezien alle whitespaces uit spaties bestaan (erg lastig, je krijgt dan een array met 100 dingen haha)
1 2 3 4 5 6 7 8 9 10 | <?php $regels = explode("\n", preg_replace("/[[:blank:]]+/"," ",$tekst)); $data = array(); foreach ( $regels as $regelnummer => $regel ) { if ( $regelnummer>2 ) $data[] = array_map("trim", explode(" ", trim($regel))); } ?> |
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | Array ( [0] => Array ( [0] => 10.0.0.17 [1] => 56086 [2] => 57174 [3] => 31.13.72.33 [4] => 443 [5] => WAN2 ) [1] => Array ( [0] => 10.0.0.17 [1] => 56089 [2] => 57177 [3] => 74.125.136.189 [4] => 443 [5] => WAN2 ) [2] => Array ( [0] => 10.0.0.17 [1] => 56092 [2] => 57180 [3] => 54.230.8.197 [4] => 80 [5] => WAN2 ) [3] => Array ( [0] => 10.0.0.17 [1] => 56093 [2] => 57181 [3] => 54.230.8.197 [4] => 80 [5] => WAN2 ) [4] => Array ( [0] => 10.0.0.17 [1] => 56094 [2] => 57182 [3] => 54.230.8.197 [4] => 80 [5] => WAN2 ) [5] => Array ( [0] => 10.0.0.17 [1] => 56095 [2] => 57183 [3] => 50.18.122.32 [4] => 80 [5] => WAN2 ) [6] => Array ( [0] => 10.0.0.17 [1] => 54041 [2] => 55129 [3] => 94.245.121.253 [4] => 3544 [5] => WAN2 ) [7] => Array ( [0] => 10.0.0.5 [1] => 5761 [2] => 38849 [3] => 89.184.172.50 [4] => 5080 [5] => WAN1 ) [8] => Array ( [0] => 10.0.0.17 [1] => 55688 [2] => 56776 [3] => 108.160.163.42 [4] => 80 [5] => WAN2 ) [9] => Array ( [0] => 10.0.0.17 [1] => 55722 [2] => 56810 [3] => 74.125.136.18 [4] => 443 [5] => WAN2 ) ) |
Je zou daarna door de array kunnen gaan en alles wat geen spatie is gebruiken toch?quote:Op vrijdag 9 augustus 2013 09:46 schreef wobbel het volgende:
[..]
Exploden op een spatie wordt hem niet, aangezien alle whitespaces uit spaties bestaan (erg lastig, je krijgt dan een array met 100 dingen haha)
1 2 3 | <?php preg_replace('/(\s)+/', ' ', $string); ?> |
Ik heb het op deze manier gedaan:quote:Op vrijdag 9 augustus 2013 09:50 schreef mstx het volgende:
[ code verwijderd ]
Resultaat:
[ code verwijderd ]
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 32 33 34 35 | <?php $string = "------------------------------------------------------------------------------- Private IP :Port #Pseudo Port Peer IP :Port Interface ------------------------------------------------------------------------------- 10.0.0.17 56086 57174 31.13.72.33 443 WAN2 10.0.0.17 56089 57177 74.125.136.189 443 WAN2 10.0.0.17 56092 57180 54.230.8.197 80 WAN2 10.0.0.17 56093 57181 54.230.8.197 80 WAN2 10.0.0.17 56094 57182 54.230.8.197 80 WAN2 10.0.0.17 56095 57183 50.18.122.32 80 WAN2 10.0.0.17 54041 55129 94.245.121.253 3544 WAN2 10.0.0.5 5761 38849 89.184.172.50 5080 WAN1 10.0.0.17 55688 56776 108.160.163.42 80 WAN2 10.0.0.17 55722 56810 74.125.136.18 443 WAN2"; $count = 0; foreach ( preg_split("/((\r?\n)|(\r\n?))/", $string ) as $regel ) { if ( $count > 2 ) { $nat_array[] = array_filter ( preg_split('/\s+/', $regel ) ); } $count++; } echo "<pre>"; print_r ( $nat_array ); echo "</pre>"; ?> |
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | Array ( [0] => Array ( [1] => 10.0.0.17 [2] => 56086 [3] => 57174 [4] => 31.13.72.33 [5] => 443 [6] => WAN2 ) [1] => Array ( [1] => 10.0.0.17 [2] => 56089 [3] => 57177 [4] => 74.125.136.189 [5] => 443 [6] => WAN2 ) [2] => Array ( [1] => 10.0.0.17 [2] => 56092 [3] => 57180 [4] => 54.230.8.197 [5] => 80 [6] => WAN2 ) [3] => Array ( [1] => 10.0.0.17 [2] => 56093 [3] => 57181 [4] => 54.230.8.197 [5] => 80 [6] => WAN2 ) [4] => Array ( [1] => 10.0.0.17 [2] => 56094 [3] => 57182 [4] => 54.230.8.197 [5] => 80 [6] => WAN2 ) [5] => Array ( [1] => 10.0.0.17 [2] => 56095 [3] => 57183 [4] => 50.18.122.32 [5] => 80 [6] => WAN2 ) [6] => Array ( [1] => 10.0.0.17 [2] => 54041 [3] => 55129 [4] => 94.245.121.253 [5] => 3544 [6] => WAN2 ) [7] => Array ( [1] => 10.0.0.5 [2] => 5761 [3] => 38849 [4] => 89.184.172.50 [5] => 5080 [6] => WAN1 ) [8] => Array ( [1] => 10.0.0.17 [2] => 55688 [3] => 56776 [4] => 108.160.163.42 [5] => 80 [6] => WAN2 ) [9] => Array ( [1] => 10.0.0.17 [2] => 55722 [3] => 56810 [4] => 74.125.136.18 [5] => 443 [6] => WAN2 ) ) |
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <?php $string = "------------------------------------------------------------------------------- Private IP :Port #Pseudo Port Peer IP :Port Interface ------------------------------------------------------------------------------- 10.0.0.17 56086 57174 31.13.72.33 443 WAN2 10.0.0.17 56089 57177 74.125.136.189 443 WAN2 10.0.0.17 56092 57180 54.230.8.197 80 WAN2 10.0.0.17 56093 57181 54.230.8.197 80 WAN2 10.0.0.17 56094 57182 54.230.8.197 80 WAN2 10.0.0.17 56095 56810 50.18.122.32 80 WAN2 10.0.0.17 54041 55129 94.245.121.253 3544 WAN2 10.0.0.5 5761 38849 89.184.172.50 5080 WAN1 10.0.0.17 55688 56776 108.160.163.42 80 WAN2 10.0.0.17 55722 56810 74.125.136.18 443 WAN2"; $count = 0; $nat_array = array ( ); $pseudo_array = array ( ); foreach ( preg_split("/((\r?\n)|(\r\n?))/", $string ) as $regel ) { if ( $count > 2 ) { $nat_array[$count] = array_filter ( preg_split('/\s+/', $regel, 6, PREG_SPLIT_NO_EMPTY ) ); $pseudo_array[] = $nat_array[$count][2]; } $count++; } $pseudo_count = array_count_values ( $pseudo_array ); foreach ( $nat_array as $key => $value ) { echo "Key: " . $key . "<br />"; echo "IP: " . $value[0] . "<br />"; echo "Pseudo poort: " . $value[2] . "<br />"; if ( $pseudo_count[$value[2]] > 1 ) { echo "Dubbel: Jep!<br /><br />"; } else { echo "Dubbel: nee<br /><br />"; } }?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |