Avatar billede googolplex Novice
25. januar 2005 - 23:57 Der er 10 kommentarer og
1 løsning

Hvordan bygger jeg min(e) tabel(ler) op

Jeg er ved at lave en/flere MySQL tabel(ler), men før jeg går igang vil jeg lige høre om det jeg forestiller mig er helt tåbeligt.

Mit 'problem' er, at der skal kunne søges på en hulens masse bolean felter (true/false, ja/nej) og på nogle få char.

Det drejer sig om 50+ bolean felter og 10-15 char.

Jeg havde tænkt mig bare at lave én stor tabel og så lave noget kraftig indeksering ved INSERT's/UPDATE's for er gøre SELECT's hurtigere (der kommer 100-1000 gange så mange SELECT's som INSERT's/UPDATE's).

Men jeg har en vag fornemmelse af, at det er en dårlig ide med én enkelt tabel og jeg er tvivl om indeksering har nogen effekt på bolean felter.

Nogen der kan guide undertegnede ?
Avatar billede steen_hansen Forsker
26. januar 2005 - 00:07 #1
Kigger med, prøver at suge til mig :)
Avatar billede googolplex Novice
26. januar 2005 - 00:23 #2
Du behøver ikke skrive noget, bare tryk 'kommentar', så kigger du med automatisk :)
Avatar billede arne_v Ekspert
26. januar 2005 - 08:21 #3
En boolean i MySQL er jo en tinyint i forklædning, så jeg mener sagtens
at du kan lave et index på et boolean felt.

Men effekten af index er meget minimal.

Jeg tror at du skal i gang med at eksperimentere med fler felts index.

Et index på 1 boolean felt vil reducere antal rækker der skal scannes til 1/2.

Et index på 6 boolean felter vil reducere antal rækker der skal scannes til 1/64.

Det forudsætter naturligvis at det er de samme kombinationer af boolean
felter du typisk søger på.

Jeg har aldrig prøvet den slags selv.

Men jeg synes at du skal gå igang med at lave nogle eksperimenter og
se om der er nogen muligheder.
Avatar billede googolplex Novice
26. januar 2005 - 15:45 #4
Ok, har aldrig hørt om 'fler felts indeks', men jeg kan godt se logikken i det. Det er faktisk (tror jeg) de samme kombinationer af bolean der vil blive søgt på.

Men er der noget grundlæggende forkert i at have én stor tabel med 50-100 bolean/char ?
Avatar billede arne_v Ekspert
26. januar 2005 - 15:51 #5
Ikke hvis dine data er sådan.
Avatar billede googolplex Novice
28. januar 2005 - 16:04 #6
Kunne det være en ide at dele min tabel op i 2 tabeller, en der indeholder alle boolean felterne, en til resten ?
Avatar billede arne_v Ekspert
28. januar 2005 - 16:06 #7
Tror jeg ikke - hvad skulle fordelen være ved det ?
Avatar billede googolplex Novice
31. januar 2005 - 15:49 #8
Jeg læste fx at man med fordel kan dele sine varchar og char op i 2 tabeller, fordi et enkelt varchar påvirker hele tabellen, så jeg tænkte der måske også var noget omkring bolean.

Dump et svar :)
Avatar billede arne_v Ekspert
31. januar 2005 - 15:58 #9
Den har jeg hørt før. Men jeg tror ikke på den.

Og et svar.
Avatar billede googolplex Novice
03. februar 2005 - 15:49 #10
Ok, ham der fortalte mig det havde bare riiiimelig godt styr på det, det var derfor jeg tog det for 'gode varer' :)

Takker!
Avatar billede arne_v Ekspert
03. februar 2005 - 15:53 #11
Der står faktisk noget om CHAR versus VARCHAR på MySQL's egen hjemme side. Så
han er absolut i god tro.

Men de få eksperimenter jeg har lavet har ikke kunnet påvise effekten.
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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