Det drejer sig om et fodboldspil jeg arbejder på. (surprise).
Hvis vi fx tager databasen med al data omkring stillingerne.
Problemet er at der til tider vil være enormt stor trafik = mange queries med select i fra brugerne der ser stillingen. Men samtidig er et javaprogram i gang med at opdatere fordi der bliver spillet kampe.
Når der opdateres låses tabellen og brugerne vil derfor opleve et unødigt delay på deres query. Samtidig vil javaprogrammet brugere mere tid på at finde den række der skal opdateres hvis der er 200.000 rækker i tabellen fremfor hvis der bare er 18 fx.
INSERT hastighed boer ikke afhaenge af antal raekker
UPDATE hastighed vil kun afhaenge meget af antal raekker hvis der mangler de rigtige index - med de rigtige index saa boer af mange raekker vaere minimal
med hensyn til samtidige queries og updates, saa burde det ogsaa vaere til at haandtere, men vi skal vide om du bruger MyISAM eller InnoDB tabeller og hvis det er InnoDB tabeller - hvilket transaction isolation level du koerer med
Nu har jeg absolut ingen problemer med hastigheden. Jeg ville bare høre om der var nogen ulemper for at bruge så mange tables. Det ville forhindre at processen der opdaterede skulle lave en lock på en kæmpe datatabel.
Hvis der er 10.000+ tabeller kan der være problemer med at åbne og lukke tablerne hele tiden (Da tables_open cache nok ikke kan være så høj :)). Da hver tabel er 1 eller 2 filer på filsystemet, kan det give problemer med antal åbne filer samtidig.
Så jeg ville nok også prøve med innoDB, hvor der "kun" låses for den række der opdateres i.
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.