31. august 2006 - 14:54Der er
5 kommentarer og 2 løsninger
MySQL vs. MS SQL og specielle tegn
Jeg er netop skiftet til et Webhotel hvor jeg har adgang til MS SQL. Jeg har mine løsninger ligende på MySQL, og det vil selvfølgelig være noget af en opgave at flytte det hele over i MS SQL.
Kan det betale sig?
Jeg tilgår begge databaser via web, og jeg har indtil videre ikke over 3000 rækker i mine tabeller, dette tal vil muligvis vokse en del, og måske komme op i nærheden af 10.000 poster i en tabel. Jeg ved at i MS SQL server verdenen er dette små tabeller, som den ikke bruger særlige resourser på, men hvad med MySQL? Vil jeg få en mærkbar bedre performance ved at skifte, eller kan jeg ligeså godt holde mig til det jeg kender bedst, og der hvor data i forvejen er, og så droppe skiftet til MS SQL?
Jeg har prøvet i en statistik test at komme over 80.000 poster i en MySQL tabel, og det døde den af. Den blev ved med at "være i brug", så jeg kunne hverken slette, droppe eller noget som helst i phpMyAdmin. Jeg ved så ikke om det var databasen eller min forrige udbyder der havde problemet der. Det skal siges at tabellen kørte nogenlunde op til 50.000 poster.
En anden ting er med at gemme special tegn i databasen. I phpMyAdmin er det jo ikke noget problem f.eks. at putte JavaScript i databasen, selvom de som regel indeholder bl.a. ' Men i min egen ASP spaghettikodede brugerflade, der gylper den hvis jeg f.eks. vil inserte tegnet ' Jeg har kompenseret for dette ved at skifte tegnet ud med %|% og så skifte tilbage når jeg henter data igen, men det er jo ikke optimalt. Hvordan får jeg lov til via ASP kode at skrive ' ned i en MySQL tabel celle? Og hvis jeg vælger at skifte til MS SQL er problemet så det samme der?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Jeg har MySQL-tabeller med over 50 millioner rækker, og hvis man forstår at bruge indekser og forstår hvilke queries, man skal bruge på tabellen, så er det intet problem. Så antal rækker bør ikke diktere dit skift.
Mht. specielle tegn, så er det som oftest blot at "escape'e" dem. I SQL gør man det oftest ved at sætte en \ foran tegn. Altså:
SELECT foo FROM bar WHERE kol = 'it\'s a good day to die';
Det er det samme i MySQL og MS SQL og at erstatte det med %|% er en voldsomt grim løsning. Og at lave det i ASP er ganske trivielt.
Altså har du ikke umiddelbart nævnt noget, der indikerer at du bør skifte til MS SQL med mindre muligheden for MySQL er besværligere, dyrere eller andet.
Hej arne v og barklund (hvis I stadig er der ude et sted ;-) Undskyld fraværelsen (kan man sige det?) Jeg kom væk fra mit problem da jeg pludselig skiftede job, og ikke har haft tid til at kigge på det, og prøve jeres forslag. Har dog kigget en del på oplysning om, at mit problem med database størrelsen lå hos mig selv, men heller ikke her har jeg haft tid til at prøve det store. Jeg vil dog gerne give jer point for jeres fornuftige kommentare, hvis I lige smider et svar
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.