In Java is het wel mogenlijk.quote:Op dinsdag 10 juni 2008 09:06 schreef ursel het volgende:
Ik heb er eerlijk gezegd ook nog niet eerder over gehoord. En jou PHP versie volgens mij ook niet
Bedankt voor je query SR, maar helaas support de host van mijn klantje geen subqueries... waarom stappen ze nou niet gewoon allemaal gelijktijdig over!!quote:Op maandag 16 juni 2008 16:34 schreef SuperRembo het volgende:
De laatse 60 gebruikers die online waren, gesorteerd op naam:
[ code verwijderd ]
Is de naam echt de key tussen online en profielen?
Het verschil in dagen tussen twee datums krijg je in één keer met DATEDIFF(dat1, dat2).
Klopt 100%quote:Op maandag 16 juni 2008 19:22 schreef Xcalibur het volgende:
ik snap het niet....
Je moet dus je users joinen op de online tabel, en alles wat daar niet in staat is dus offline?
Zeg dat dan meteenquote:Op maandag 16 juni 2008 19:00 schreef Chandler het volgende:
[..]
Bedankt voor je query SR, maar helaas support de host van mijn klantje geen subqueries... waarom stappen ze nou niet gewoon allemaal gelijktijdig over!!
hoe goed geindexeerd is die 400mbquote:Op maandag 16 juni 2008 11:18 schreef ursel het volgende:
Weet er iemand eigenlijk wat een beetje de limieten van MySQL zijn?
Voor aantal connecties heb ik ooit wel eens opgevangen dat MySQL beetje gaat hikken als die meer dan 100 connecties per seconde krijgt bijvoorbeeld.
Maar hoe zit het eigenlijk met de hoeveelheid data?
Weet dat we nu nog met 400 mb nog makkelijk niet aan de max zitten. Maar voor een project zijn we het een en ander aan het inventariseren om toch grotere hoeveelheden data op te gaan slaan.
Met het oog op de toekomst wel zo prettig om dan ook gelijk de database te evalueren.
Wat is de definitie van goed.quote:Op maandag 16 juni 2008 21:47 schreef morpheus_at_work het volgende:
[..]
hoe goed geindexeerd is die 400mb
Hoe bedoel je met IS NULL? ik heb geen ervaring met lege JOINSquote:Op maandag 16 juni 2008 20:56 schreef Xcalibur het volgende:
In dat geval denk ik niet dat het met een enkele query lukt, met twee moet geen probleem zijn....:)
Met een JOIN op IS NULL kan je de subquery omzeilen.
Ja ik denk dat het laatste idd de oplossing is, ik ga er mee aan de slag!quote:Op maandag 16 juni 2008 21:41 schreef SuperRembo het volgende:
Zeg dat dan meteen
Dan zou je eerst een temp tabel kunnen vullen met de laatste 60 online id's... maar dan is het eenvoudiger om eerst alle rows uit te lezen en ze dan in php te sorteren.
Vaak kan je een WHERE IN (...) of WHERE NOT IN (...) sub query omzetten naar een JOIN. In dit geval lukt dat niet omdat in de sub query een ORDER BY en LIMIT zit.quote:Op dinsdag 17 juni 2008 09:39 schreef Chandler het volgende:
[..]
Hoe bedoel je met IS NULL? ik heb geen ervaring met lege JOINS
Volgens mij kan je die ORDER BY en LIMIT in de gewone query doen?quote:Op dinsdag 17 juni 2008 10:25 schreef SuperRembo het volgende:
Vaak kan je een WHERE IN (...) of WHERE NOT IN (...) sub query omzetten naar een JOIN. In dit geval lukt dat niet omdat in de sub query een ORDER BY en LIMIT zit.
Het probleem is in dit geval dat je voor de LIMIT wil sorteren op online.id, maar voor de regels die daarmee gevonden worden wil je op profielen.naam gesorteerd hebben.quote:Op dinsdag 17 juni 2008 10:29 schreef Xcalibur het volgende:
[..]
Volgens mij kan je die ORDER BY en LIMIT in de gewone query doen?
Je krijgt sowieso alleen de resultaten van je JOIN, en die worden dan gesorteerd en gelimit.
Dit heeft helaas ook niet mogen baten. Ik houd het wel bij het oude script. Weinig spam tot nu toequote:
Dan weet ik het ook nietquote:Op woensdag 18 juni 2008 19:58 schreef JJasperO het volgende:
[..]
Dit heeft helaas ook niet mogen baten. Ik houd het wel bij het oude script. Weinig spam tot nu toe.
Dan zijn goede indices wel belangrijk. Zeker omdat je in een grote hoeveelheid data wilt zoeken.quote:Op dinsdag 17 juni 2008 00:12 schreef ursel het volgende:
[..]
Wat is de definitie van goed.
Kan beter, maar wel deels. Wat zal ik zeggen.
Er liggen op de belangrijkste en grootste tabellen wel indexen, maar is de engine momenteel nog myisam. Er liggen bijvoorbeeld geen foreign keys.
De engine zal in de nieuwe toevoer ook uitgezocht worden en denk momenteel innoDB hier voor te gebruiken.
Maar de nieuwe data opslag zal een ander process zijn dan de huidige. Eigenlijk willen we van een ander systeem maandelijks de data opslaan en deze doorzoekbaar maken voor slechts enkele gebruikers. De hoeveelheid queries zullen dus miniem zijn, de hoeveelheid te zoeken data groot.
1 |
Kan, ligt aan de directorystructuurquote:Op vrijdag 20 juni 2008 12:43 schreef Scorpie het volgende:
[..]
Zonder de /templates dir neem ik aan.
Als in het directorypad op de server? Met dirname(__FILE__) krijg je de directory (zonder /) waarin het bestand met die code zich bevindt. Dus als je dat in test.php gebruikt dan weet test.php waar het staat.quote:Op vrijdag 20 juni 2008 12:40 schreef Chandler het volgende:
@Light; het idee is goed, maar wil dat het script test weet waar het staat.
Gaat niet om het include script maar om het script dat geincluded wordt
De methode van indices is mij wel bekend jaquote:Op woensdag 18 juni 2008 22:08 schreef Light het volgende:
[..]
Dan zijn goede indices wel belangrijk. Zeker omdat je in een grote hoeveelheid data wilt zoeken.
Als je 1.000.000 unieke getallen hebt en je zoekt daar een specifiek getal zonder dat je weet hoe de rij gesorteerd is, dan heb je gemiddeld 500.000 pogingen nodig (gewoon vooraan beginnen, en steeds de volgende pakken tot je de goede hebt gevonden). Als je weet dat de rij oplopend gesorteerd is, heb je maximaal 20 pogingen nodig (aangenomen dat je nauwkeurig het midden kunt bepalen). Als je zoekt op een getal dat niet in de lijst staat, heb je in het eerste geval altijd 1.000.000 zoekpogingen nodig, in het tweede geval nog steeds niet meer dan 20.
Indices in MySQL werken vast iets anders, maar een goede index heeft een zeer groot effect op de snelheid. En hoe groter je dataset, hoe groter het voordeel.
Ligt er natuurlijk aan wat je bedoelt met 'aan de slag gaan', het sorteren van, zoeken in, updaten van.quote:Op vrijdag 20 juni 2008 13:15 schreef ursel het volgende:
[..]
De methode van indices is mij wel bekend ja
Waar ik vooral naar op zoek ben zijn de eventuele beperkingen in MySQL wanneer je met grote hoeveelheden aan de slag gaat.
Gewoon het gehele proces. Ik heb eigenlijk nog nooit met grote hoeveelheden data hoeven werken en dus ook nooit problemen hoeven ondervinden in MySQL.quote:Op vrijdag 20 juni 2008 13:18 schreef Thomass het volgende:
[..]
Ligt er natuurlijk aan wat je bedoelt met 'aan de slag gaan', het sorteren van, zoeken in, updaten van.
Een database van 50 - 100 mb gaat gewoon goed, mits natuurlijk je je datamodel wel op orde hebt.quote:Op vrijdag 20 juni 2008 13:42 schreef ursel het volgende:
[..]
Gewoon het gehele proces. Ik heb eigenlijk nog nooit met grote hoeveelheden data hoeven werken en dus ook nooit problemen hoeven ondervinden in MySQL.
De planning voor het nieuwe project is dat er maandelijk zo'n 50 - 100 mb aan data in de database opgeslagen moet gaan worden. Echter is het de bedoeling dat in de loop der jaren al deze data doorzoekbaar moet blijven.
Ik ben dus vooral op zoek naar informatie wat een beetje de limieten zijn als data veel gaat worden, queries moeilijker te doorzoeken worden etc.
Ik bedoel, ergens zal er toch wel een reden zijn waarom je over zou stappen van de gratis MySQL naar een dure Oracle of andere betaalde database server.
Database groeit per maand met die hoeveelheid..quote:Op vrijdag 20 juni 2008 13:49 schreef JortK het volgende:
[..]
Een database van 50 - 100 mb gaat gewoon goed, mits natuurlijk je je datamodel wel op orde hebt.
Ik heb zelf een database van 13GB, ook dit werkt nog perfect
Dat ligt aan je definitie van groot. FOK! draait op MySQL. En alleen al het forum heeft ruim 59 miljoen posts. Als je dat combineert met veel pageviews dan wordt het allemaal wat lastiger qua setup enzo. Pageviews van het forum weet ik niet, maar in de tijd dat ik crew was, was een subsite met 100.000 pageviews per dag klein.quote:Op vrijdag 20 juni 2008 13:15 schreef ursel het volgende:
[..]
De methode van indices is mij wel bekend ja
Waar ik vooral naar op zoek ben zijn de eventuele beperkingen in MySQL wanneer je met grote hoeveelheden aan de slag gaat.
Ik doe het zo:quote:Op vrijdag 20 juni 2008 12:23 schreef Chandler het volgende:
Een leuke
Voor een bepaald script dat ik include moet ik weten waar het script staat (directory).
voorbeeld:
include("./templates/test/test.php");
nu moet het script (test.php) weten dat het pad ./templates/test/ is om daar zijn bestanden te kunnen benaderen.
Nu doe ik het zo
[ code verwijderd ]
maar dat vind ik niet echt lekker werken en aangezien ik op een online webserver geen DOCUMENT_ROOT (denk ik) kan gebruiken ben ik opzoek naar een andere oplossing.
Iemand die mij kan helpen?
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 | // env.php $BASEDIR = "/home/wesleys/sbox/php"; $LIBDIR = "$BASEDIR/lib"; $BINDIR = "$BASEDIR/bin"; $LIB_OPN = "$LIBDIR/OPN"; $LIB_OTH = "$LIBDIR/OTHERS"; $SMARTY = "/usr/share/php/smarty/libs"; include_once("$LIB_OPN/Util.php"); /* set_path zit in Util.php */ set_path($LIBDIR, $BINDIR, $LIB_OPN, $LIB_OTH); function set_path() { $args = func_get_args(); $incl_path = "include_path"; $include_path = ini_get($incl_path); foreach ($args as $val) { /* add check to see if path exists */ $include_path .= ":$val"; } return ini_set($incl_path, "$include_path"); } ?> |
1 2 3 4 5 6 7 8 9 | //index.php include_once("/path/to/env.php"); // Includen allemaal dezelfde file. include_once("/path/to/OPN/Util.php"); include_once("OPN/Util.php"); include_once("Util.php"); ?> |
Dan zou je het niet alleen in 1 database maar ook in 1 tabel moeten houden. Kan makkelijk natuurlijk.quote:Op zondag 22 juni 2008 22:36 schreef Farenji het volgende:
Je wil misschien ook vergelijkingen en statistieken kunnen tonen over meerdere sites en dan is het vele malen praktischer als alle data in 1 database zit. Er is m.i. geen enkele goede reden om dit in meerdere databases te doen. Als het om 1 tot 10.000 sites gaat dan raakt het overzicht zo zoek als je dat opsplitst.
Maar wil je alleen statistieken per website maken, of wil je ook statistieken over alle websites heen maken. In het tweede geval is 1 grote db waarschijnlijk handiger, anders is 1 db per website waarschijnlijk handiger en sneller.quote:Op maandag 23 juni 2008 10:31 schreef Chandler het volgende:
Tja wat wil ik met al die data doen?! statistieken genereren![]()
Ziet er handig uit, maar wat nou als er 2 bestanden het zelfde heten in een van de ingestelde directories?quote:Op vrijdag 20 juni 2008 17:03 schreef slakkie het volgende:
[..]
Ik doe het zo:
[ code verwijderd ]
Ik kan nu op devolgende manieren includen:
[ code verwijderd ]
En dit kan je daarna in alle files doen die door index.php geinclude worden. Util.php kan ik nu ook include_once("Something.php") doen zonder me hoef druk te maken over het pad waar de file instaat.
Bijkomend voordeel is dat ik alle files in OPN/lib gewoon include_once("File.php") kan gebruiken zonder set_path omdat alle files die geinclude worden in de huidige dir zitten. Mocht je iets uit OTHERS of SMARTY willen hebben dan moet je wel eerst env.php includen. Of je include_once("../OTHERS/File.php");
Ikzelf vind deze werkwijze erg prettig, aangezien ik maar in 1 file hoef bij te houden welke include paden ik wil, en doordat de rest gewoon geinclude wordt hoef ik me daar niet meer druk te maken over owje.. Waar stond dat ookalweer? Gewoon include_once("File.php") en je bent klaar.
Ik gebruik ruim 10 tabellen voor veel verschillende informatie onderdelen oa. user/browser/os/iprange/country/referer/hits&uniques en ga zo maar doorquote:Op maandag 23 juni 2008 11:20 schreef slacker_nl het volgende:
1 DB, en wellicht zou ik het nog in 1 table knallen ook.
Dan snap ik niet dat google ooit groot is geworden? Juist door het wiel op nieuw uit te vinden kun je het verbeteren anders reden we nog steeds op houten wielenquote:Op maandag 23 juni 2008 11:22 schreef Xcalibur het volgende:
Waarom gebruik je niet gewoon Google Analytics of zo'n soort programma?
Het wiel opnieuw uitvinden heeft bij zoiets vrij weinig toegevoegde waarde volgens mij?
Voorbeeld:quote:Op maandag 23 juni 2008 12:40 schreef super-muffin het volgende:
Ziet er handig uit, maar wat nou als er 2 bestanden het zelfde heten in een van de ingestelde directories?
Mja, alleen zijn er inmiddels al dermate veel (en goede!) statistiekenprogramma's, al dan niet gratis, dat ik me toch echt de moeite zou besparen van al die ellende zelf uit te zoekenquote:Op maandag 23 juni 2008 14:17 schreef Chandler het volgende:
Dan snap ik niet dat google ooit groot is geworden? Juist door het wiel op nieuw uit te vinden kun je het verbeteren anders reden we nog steeds op houten wielen
Kewl :)quote:Op maandag 23 juni 2008 14:50 schreef Scorpie het volgende:
@slakkie: ik ga jouw functie ook gebruiken, thx !
1 2 3 4 5 6 7 8 9 | function req_version($version) { if (version_compare(PHP_VERSION, $version, '<' ) == 1) { trigger_error(sprintf("Required version is %s, you have %s\n", $version, PHP_VERSION), E_USER_ERROR); exit(255); } } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |