Resultaten 1 tot 15 van de 28
Pagina 1 van de 2 1 2 LaatsteLaatste
Geen
  1. #1
    Wat zegt dit over de webhoster?
    geregistreerd gebruiker
    33 Berichten
    Ingeschreven
    09/10/06

    Locatie
    Essen

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter

    Wat zegt dit over de webhoster?

    Ik heb een php pagina waarin ik 2 zoekresultaten oproep van 2 databases. Database 1 heeft 2 tabellen met elk bijna een miljoen records (beide samen bijna twee milj), waaronder zinnen. Database 2 heeft ook 2 tabellen met evenveel data als db1, maar hier geen lange zinnen.
    Elke database is niet groter dan 50 MB.

    De zoekresultaten bestaan uit max zoveel regels (25), en er wordt maar in 1 tabel per database gezocht.

    Nu laadt de pagina retetraag, en dus mijn vraag wat dit zegt over de webhoster van mijn shared account. Of zijn mijn databases gewoon veeeeel te zwaar voor een shared account.

  2. #2
    Wat zegt dit over de webhoster?
    geregistreerd gebruiker
    56 Berichten
    Ingeschreven
    05/06/11

    Locatie
    Hilversum

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    6 Berichten zijn liked


    Naam: Marcel
    Registrar SIDN: ja
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Het ligt er helemaal aan hoe de structuur van je tabellen er uit ziet en wat voor query je er op los laat.
    Als je bv een SELECT * from table where column1 = '%woord%' op een tabel met een miljoen records los laat,
    kan ik me voorstellen dat dat wel eventjes duurt voordat je een antwoord krijgt.

  3. #3
    Wat zegt dit over de webhoster?
    moderator
    4.749 Berichten
    Ingeschreven
    21/02/09

    Locatie
    Noord-Holland

    Post Thanks / Like
    Mentioned
    25 Post(s)
    Tagged
    0 Thread(s)
    185 Berichten zijn liked


    Naam: D. Koop
    Bedrijf: Yourwebhoster.eu
    Functie: baas
    URL: yourwebhoster.eu
    KvK nummer: 32165429
    View danielkoop's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door timvermaesen Bekijk Berichten
    Ik heb een php pagina waarin ik 2 zoekresultaten oproep van 2 databases. Database 1 heeft 2 tabellen met elk bijna een miljoen records (beide samen bijna twee milj), waaronder zinnen. Database 2 heeft ook 2 tabellen met evenveel data als db1, maar hier geen lange zinnen.
    Elke database is niet groter dan 50 MB.

    De zoekresultaten bestaan uit max zoveel regels (25), en er wordt maar in 1 tabel per database gezocht.

    Nu laadt de pagina retetraag, en dus mijn vraag wat dit zegt over de webhoster van mijn shared account. Of zijn mijn databases gewoon veeeeel te zwaar voor een shared account.
    Dit is zoals Marcellow aangeeft afhankelijk van de query, de type data, hoe de indexen gemaakt zijn, de cache van de hoster, etc etc etc.. Veel records zorgen er voor dat de server enorm traag kan worden en zoveel records icm complexe queries zijn veelal niet geschikt voor normale shared hosting omgevingen. Je kan ook zelf kijken of je cache in je applicatie kan programmeren, waardoor de resultaten maar één keer binnen de zoveel tijd opgehaald hoeft te worden.
    Met vriendelijke groet, Yourwebhoster.eu - Managed VPS diensten met Epyc performance op 100% SSDs

    Lees hier de webhostingtalk.nl forum regels en voorwaarden!

  4. #4
    Wat zegt dit over de webhoster?
    geregistreerd gebruiker
    33 Berichten
    Ingeschreven
    09/10/06

    Locatie
    Essen

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter
    Ik gebruik inderdaad zoiets:
    SELECT * FROM tabel WHERE kolom LIKE '%blabla%' ORDER BY RAND() LIMIT 0

    Is er dan een betere manier?

  5. #5
    Wat zegt dit over de webhoster?
    moderator
    4.749 Berichten
    Ingeschreven
    21/02/09

    Locatie
    Noord-Holland

    Post Thanks / Like
    Mentioned
    25 Post(s)
    Tagged
    0 Thread(s)
    185 Berichten zijn liked


    Naam: D. Koop
    Bedrijf: Yourwebhoster.eu
    Functie: baas
    URL: yourwebhoster.eu
    KvK nummer: 32165429
    View danielkoop's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door timvermaesen Bekijk Berichten
    Ik gebruik inderdaad zoiets:
    SELECT * FROM tabel WHERE kolom LIKE '%blabla%' ORDER BY RAND() LIMIT 0

    Is er dan een betere manier?
    Wat wil je precies bereiken/is het doel van het script?

    Klopt het dat je dus een query als deze door 4 miljoen records heen gooit?
    Met vriendelijke groet, Yourwebhoster.eu - Managed VPS diensten met Epyc performance op 100% SSDs

    Lees hier de webhostingtalk.nl forum regels en voorwaarden!

  6. #6
    Wat zegt dit over de webhoster?
    geregistreerd gebruiker
    33 Berichten
    Ingeschreven
    09/10/06

    Locatie
    Essen

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter
    Citaat Oorspronkelijk geplaatst door Yourwebhoster Bekijk Berichten
    Wat wil je precies bereiken/is het doel van het script?

    Klopt het dat je dus een query als deze door 4 miljoen records heen gooit?
    De pagina bevat zoekresultaten. Een zoekopdracht resulteert dan in een zoektocht in de 2 databases.

    En dat is wat ik dus gebruik om de data weer te geven.

  7. #7
    Wat zegt dit over de webhoster?
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Order by rand() is zóóóóóó fout... (en die limit 0 is een fout neem ik aan?)

    Edit: ter info.

    Een like '%blabla%' help je index gebruik al om zeep. Daarnaast is order by rand() een 100% performance killer. Mysql moet namelijk eerst je hele tabel scannen omdat je niet kunt indexeren op %blabla%. Daarnaast moet ie ook nog eens random een x aantal records selecteren uit je totale resultset.
    Dit kun je niet afschuiven op je hoster maar is puur een programmeursfout.

    Edit 2: resultsets zjn tijdelijke tabellen zónder index. Als ze in het ram passen is dat niet altijd zo heel erg, maar met een x mil. records gaat dat geheid naar schijf. Niet vooruit te branden dus.
    Laatst gewijzigd door systemdeveloper; 03/06/12 om 17:38.

  8. #8
    Wat zegt dit over de webhoster?
    moderator
    4.749 Berichten
    Ingeschreven
    21/02/09

    Locatie
    Noord-Holland

    Post Thanks / Like
    Mentioned
    25 Post(s)
    Tagged
    0 Thread(s)
    185 Berichten zijn liked


    Naam: D. Koop
    Bedrijf: Yourwebhoster.eu
    Functie: baas
    URL: yourwebhoster.eu
    KvK nummer: 32165429
    View danielkoop's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door timvermaesen Bekijk Berichten
    De pagina bevat zoekresultaten. Een zoekopdracht resulteert dan in een zoektocht in de 2 databases.

    En dat is wat ik dus gebruik om de data weer te geven.
    En waarom dan RAND()?

    En idd zoals Systemdeveloper aangeeft limit 0 is zeker een copy/paste foutje, daar was ik min of meer van uit gegaan.
    Met vriendelijke groet, Yourwebhoster.eu - Managed VPS diensten met Epyc performance op 100% SSDs

    Lees hier de webhostingtalk.nl forum regels en voorwaarden!

  9. #9
    Wat zegt dit over de webhoster?
    geregistreerd gebruiker
    33 Berichten
    Ingeschreven
    09/10/06

    Locatie
    Essen

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter
    Citaat Oorspronkelijk geplaatst door systemdeveloper Bekijk Berichten
    Order by rand() is zóóóóóó fout... (en die limit 0 is een fout neem ik aan?)
    SELECT * FROM tabel WHERE kolom LIKE '%blabla%' ORDER BY RAND() LIMIT 0, en hier komt automatisch een getal als limiet van het aantal weer te geven resultaten

    Ik ben die Order by rand() eens nader gaan bekijken en het schijnt inderdaad een extra belasting te geven. Erg bedankt om mij hierop te wijzen!

  10. #10
    Wat zegt dit over de webhoster?
    moderator
    5.444 Berichten
    Ingeschreven
    12/09/05

    Locatie
    Zuid Holland

    Post Thanks / Like
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)
    110 Berichten zijn liked


    Naam: Stijn
    KvK nummer: 14074337

    Jouw doel is alleen om het maximum aantal regels op te vragen, maar waarom vraag je dan de volledige tabel op in plaats van alleen het aantal regels? Staat in de code echt limit 0 of is dat als voorbeeld? In dat eerste geval heeft het geen zin om de resultaten in willekeurige volgorde weer te geven. In de select vraag je tevens alle kolommen op.
    Laatst gewijzigd door Stewie; 03/06/12 om 18:08.



  11. #11
    Wat zegt dit over de webhoster?
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door timvermaesen Bekijk Berichten
    SELECT * FROM tabel WHERE kolom LIKE '%blabla%' ORDER BY RAND() LIMIT 0, en hier komt automatisch een getal als limiet van het aantal weer te geven resultaten

    Ik ben die Order by rand() eens nader gaan bekijken en het schijnt inderdaad een extra belasting te geven. Erg bedankt om mij hierop te wijzen!
    Dit omschrijven is trouwens geen makkelijke opgave. Wat je eigenlijk moet doen is een join maken met een fictieve tabel waarbij geen order by wordt gedaan, maar waarbij je on the fly de kans berekent dat een record wel/niet geselecteerd wordt. Voorbeelden kun je wel googlen en met wat aanpassingen werkend krijgen. Wij gebruiken het regelmatig voor tabellen met vele miljoenen records.
    Het zijn en blijven echter hersenbrekertjes

  12. #12
    Wat zegt dit over de webhoster?
    geregistreerd gebruiker
    33 Berichten
    Ingeschreven
    09/10/06

    Locatie
    Essen

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter
    Citaat Oorspronkelijk geplaatst door Stewie Bekijk Berichten
    Jouw doel is alleen om het maximum aantal regels op te vragen, maar waarom vraag je dan de volledige tabel op in plaats van alleen het aantal regels? Staat in de code echt limit 0 of is dat als voorbeeld? In dat eerste geval heeft het geen zin om de resultaten in willekeurige volgorde weer te geven. In de select vraag je tevens alle kolommen op.
    Dat script gebruik ik al een hele tijd, en mijn doel is voor dat specifieke zoekopdracht maximum 25 regels weer te geven, en dit in random order.

    SELECT * FROM 'mijn tabel' WHERE 'mijn kolom' LIKE '%$zoekopdracht%' LIMIT 0, 25 ...en met die BY RAND() zorg ik ervoor dat de weergegeven resultaten voor iedereen anders is, maar steeds relevant.

    Nu heb ik gelezen dat die RAND() een probleem geeft voor grote databases, en dat er niet zo maar alternatieven voor handen zijn. Ik ben me hier nu in nog aan het verdiepen...

  13. #13
    Wat zegt dit over de webhoster?
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door timvermaesen Bekijk Berichten
    Dat script gebruik ik al een hele tijd, en mijn doel is voor dat specifieke zoekopdracht maximum 25 regels weer te geven, en dit in random order.

    SELECT * FROM 'mijn tabel' WHERE 'mijn kolom' LIKE '%$zoekopdracht%' LIMIT 0, 25 ...en met die BY RAND() zorg ik ervoor dat de weergegeven resultaten voor iedereen anders is, maar steeds relevant.

    Nu heb ik gelezen dat die RAND() een probleem geeft voor grote databases, en dat er niet zo maar alternatieven voor handen zijn. Ik ben me hier nu in nog aan het verdiepen...
    Je eerste probleem is de like '%---

    Door dat eerste % kan je index al niet meer gebruikt worden. Let wel.. het % op het einde is geen probleem.
    Het beste kun je dit deel oplossen met een 'match against' en een fulltext index.
    De rand() moet je oplossen zoals ik zei als je het goed wilt doen, maar uiteraard kun je je ook limiteren tot bv de laatste 10-20-30k records. Voor de user is dat meestal random genoeg.

  14. #14
    Wat zegt dit over de webhoster?
    [--]
    854 Berichten
    Ingeschreven
    28/05/06

    Locatie
    Eindhoven

    Post Thanks / Like
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    67 Berichten zijn liked


    Naam: R
    Registrar SIDN: ja
    KvK nummer: 20125757

    als je perse random wil. kan je natuurlijk ook (in php) gaan voor iets als.

    Code:
    <?php
    //even snel
    $start=rand(0,1000000-25); // er vanuitgaand dat er precies 1000000 rijen zijn.
    $sql="SELECT id FROM table WHERE col='bla' LIMIT ".$start.", 25";
    Laatst gewijzigd door davinci; 03/06/12 om 18:43.

  15. #15
    Wat zegt dit over de webhoster?
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door davinci Bekijk Berichten
    als je perse random wil. kan je natuurlijk ook (in php) gaan voor iets als.

    Code:
    <?php
    //even snel
    $start=rand(0,1000000-25); // er vanuitgaand dat er precies 1000000 rijen zijn.
    $sql="SELECT id FROM table WHERE col='bla' LIMIT ".$start.", 25";
    Nee, dat kan niet (om minimaal 2 redenen) maar ook daar zit je met het probleem dat de mysql resultset tot aan het $start moet worden weggegooid (aan de serverkant).

Pagina 1 van de 2 1 2 LaatsteLaatste

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2021 Webhostingtalk.nl.
Web Statistics