Zover ik weet is het een ontwerp keuze.quote:Op donderdag 19 mei 2005 11:13 schreef JeRa het volgende:
[..]
Is er eigenlijk een reden waarom foreach zoiets doet?
edit: aan de source van de Zend engine te zien wordt er áltijd een kopie gemaakt van de array of het object waar foreach op toegepast wordt, zonder te kijken of de array of het object daadwerkelijk binnen het block wordt benaderd. Er zal wel structureel iets verkeerd zitten waarom ze zoiets nog niet hebben aangepast.
quote:Op donderdag 19 mei 2005 11:54 schreef SuperRembo het volgende:
Hmmm, dat wist ik niet. Het scheel al snel erg veel
Getest met een tabel van 500 rows, 100 coll, elke cell een string van 100 chars:
While time: 0.75952410697937 s
Foreach time: 13.919291973114 s
While time: 0.0003209114074707 s
Foreach time: 14.71986413002 s
ach. op kleine datasets heb je misschien een honderste milliseconde verschil. lekker boeien dan.quote:Op donderdag 19 mei 2005 14:47 schreef ikke_ook het volgende:
hmm ik vond die foreach altijd erg handig maar als ik dit zo zie....
Die tweede benchmark geeft maar een verschil van een factor 50.000, daar doen we het niet voor hequote:Op donderdag 19 mei 2005 15:18 schreef Roönaän het volgende:
[..]
ach. op kleine datasets heb je misschien een honderste milliseconde verschil. lekker boeien dan.
Dat komt omdat ik vermoed dat superrembo vergeten is om de internal array pointer te resetten met reset($array);quote:Op donderdag 19 mei 2005 15:20 schreef JeRa het volgende:
[..]
Die tweede benchmark geeft maar een verschil van een factor 50.000, daar doen we het niet voor he
Jij ook met je slimme opmerkingenquote:Op donderdag 19 mei 2005 16:33 schreef Roönaän het volgende:
[..]
Dat komt omdat ik vermoed dat superrembo vergeten is om de internal array pointer te resetten met reset($array);
-r-
Nu niet, straks wel. Zelfs zonder indices zal het straks niet merkbaarder langzamer werken, maar in de load gaat het zeker wel schelen.quote:Op donderdag 19 mei 2005 20:33 schreef Roönaän het volgende:
Is het noodzakelijk om er indices op te zetten? Is het aantal selects zo hoog?
indices maken ook je inserts en updates trager. Dus de verhouding select moet noemenswaardig groter zijn in mijn opinie.quote:Op donderdag 19 mei 2005 20:40 schreef ikke_ook het volgende:
waarom zou je er geen indices op willen zetten dan?Je kunt toch best op meerdere kolommen indices zetten?Ik dacht juist dat t goed was omdat te doen (als je er vaak op sorteerde oid)
(ik snap wel dat t een beetje meer ruimte kost maar toch niet zoveel?}
quote:Op donderdag 19 mei 2005 22:30 schreef Chandler het volgende:
kunnen jullie die benchmark niet even online zetten? zodat ik het ook eens op mijn eigen systeem kan testen? zou handig zijn!
1 2 3 4 5 6 | $start = array_sum(explode(' ',microtime())); for($i = 0; $i < 10; $i++) { <code die je wilt testen> } $end = array_sum(explode(' ',microtime())); print $end - $start; |
quote:Op donderdag 19 mei 2005 10:52 schreef SuperRembo het volgende:
Bijna alle queries in mijn toepassing zijn SELECTs en deze worden dan ook in verhouding véél vaker gebruikt. INSERTs komen bijna niet voor en reguliere UPDATEs gebeuren alleen op niet-geïndexeerde kolommen.quote:Op donderdag 19 mei 2005 22:39 schreef Roönaän het volgende:
[..]
indices maken ook je inserts en updates trager. Dus de verhouding select moet noemenswaardig groter zijn in mijn opinie.
Ja die database class moet je zelf nog ff makenquote:Op donderdag 19 mei 2005 22:55 schreef coz het volgende:
[..]ik zie dat ie wel zou werken maar
dummie mode Cannot instantiate non-existent class![]()
?
$db = new Database();
[quote:Ja die database class moet je zelf nog ff maken
[quote:Misschien post ik morgen wel ff een simpele versie
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 | class Database { var $connection; var $config; // Constructor function Database() { $this->config =& $GLOBALS['Config']['Database']; } // Connect to server function connect() { if (is_resource($this->connection)) return;// allready connected $this->connection = mssql_connect($this->config['Server'], $this->config['Username'], $this->config['Password']); if (!$this->connection) die("Error: could not connect to server '${this->config[Server]}'"); if (!mssql_select_db($this->config['Database'])) die("Error: could not select database '".$this->config['Database']."'"); } // Execute query function execSql($query) { $this->connect(); $result = mssql_query($query); if (!$result) die("Error: error executing query '".$query."'"); return $result; } // Execute query, return table (array of arrays) function execTable($query) { $result = $this->execSql($query); $rows = array(); while (false !== $row = mssql_fetch_assoc($result)) { $rows[] = $row; } return $rows; } // Execute query, return 1 row, or false if no results found function execRow($query) { $result = $this->execSql($query); $row = mssql_fetch_assoc($result); return $row; } } |
1 | <input type = "text" value = "blabla" name="bericht[{id}]"> |
1 2 3 4 5 6 7 8 9 | Array ( [id] => Array ( [7] => 7 [1] => 1 ) [titel] => Array ( [7] => titela [1] => titelb ) [bericht] => Array ( [7] => berichta [1] => berichtb ) ) |
Niemand?quote:Op donderdag 19 mei 2005 20:19 schreef JeRa het volgende:
Een tweede pitfall waar je dus rekening mee moet houden
Ff weer een vraagje over indices in MySQL. Stel, ik heb de volgende query:
SELECT * FROM table WHERE col1 = waarde AND col2 = waarde2 ORDER BY col3 ASC, col4 ASC
In deze query wil ik soms col3 en col4 kunnen omdraaien (om in mijn toepassing op verschillende kolommen te kunnen sorteren). Hoe kan ik dan het beste mijn indices samenstellen?
1 2 3 4 5 | for ($_POST['id'] as $id) { $titel = $_POST['titel'][$id]; $bericht = $_POST['bericht'][$id]; BerichtOpslaan($id, $titel, $bericht); } |
Thanks! Dat werkt perfect jaquote:Op vrijdag 20 mei 2005 15:45 schreef SuperRembo het volgende:
Je krijgt de gegevens terug die je wil hebben, dus dat klopt wel. Alleen nog ff op de goede manier doorheen lopen
[ code verwijderd ]
Bedoel je Strstr ?quote:Op vrijdag 20 mei 2005 23:39 schreef Swetsenegger het volgende:
Het is laat, dus weet het ff zo snel niet meer.
Hoe kan ik ook alweer in een string zoeken OF een bepaalde waarde/woord voorkomt?
Een preg_match is niet nuttig als je naar een vaste string zoekt.quote:Op vrijdag 20 mei 2005 23:49 schreef Swetsenegger het volgende:
[..]
Aardig in de richting, of het moet een preg match worden.
Thanks.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |