Avatar billede chrisrj Forsker
01. november 2018 - 12:28 Der er 5 kommentarer og
1 løsning

1 mil Insert giver fantom rækker!?

Hejsa

Jeg har et php-script der laver 1 mil inserts. Virker fint, bortset fra at jeg kan se nogle hundrede fantom rækker i phpmyadmin.

Hvor kommer de fra, og er det et problem på sigt?
Avatar billede acore Ekspert
01. november 2018 - 12:32 #1
Hvad er en "fantomrække"?

Uden kendskab til dette, koden samt hvorledes den afvikles er det svært at komme med andet end generel snik-snak
Avatar billede chrisrj Forsker
01. november 2018 - 12:39 #2
Her er almindelige rækker: https://drive.google.com/open?id=1asXZyA52mql2iUqx_r7dmLswKsjd78Dn

Her er fantom rækker: https://drive.google.com/open?id=1_7BjOP-UloumCPrIEkgBsbfweFBkbNVQ


Koden er bare et par for loops:
   
    for($i=0; $i<=999; $i++) {
        $query = 'INSERT INTO '.UBIC_ProtoUBISeeds.' (SeedID, CurrentOwnerAID) VALUES ';
       
        for($j=0; $j<=999; $j++) {
          $query .= '(DEFAULT, '.$ownerAID.'),';
        }
        $query = rtrim($query,',');
       
        mysqli_query ($mysqli, $query)or die(mysql_error()).'<br>';
       
        $query = '';
    }

Der er kun de rækker der skal være, så den del er ok.
Avatar billede acore Ekspert
01. november 2018 - 12:47 #3
Har du prøvet med REPAIR TABLE...?
Avatar billede Slater Ekspert
01. november 2018 - 12:48 #4
Den row count er kun et estimat, da det vil tage for lang tid og være unødvendigt at køre en fuld COUNT() på rækkerne hver gang man henter dem.
Tallet er ikke nøjagtigt, vil ofte skifte når du kører samme query en gang til, og der eksisterer ikke nogle fantomrækker eller lignende.
Avatar billede chrisrj Forsker
01. november 2018 - 12:53 #5
acore: nej, men funktionerne i adminpanelet:
Tjek tabel
Defragmenter tabel
Analyser tabel
Optimer tabel

Er alle prøvet uden ændringer ses.

Slater: Aha! Men tallet ændrer sig ikke når jeg skifter tabelvisning i interfacet. Men dog ændrer sig hvis jeg indsætter flere rækker...
Avatar billede chrisrj Forsker
01. november 2018 - 12:56 #6
Jeg kan se, hvis jeg laver en SELECT count(SeedID) FROM `UBIC_ProtoUBISeeds` i interfacet får jeg det rette antal rækker, så må jo være ok. :)

Jeg takker for opklaringen! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester