Avatar billede jammerlab Nybegynder
15. januar 2004 - 00:42 Der er 23 kommentarer og
1 løsning

Max antal

Er det muligt at sætte så en tabel max kan indeholde ... lad os sige 100 indlæg? Altså så den så sletter de elste og bytter ud med de nyeste. Det er en chat som jeg programmere i PHP, men jeg vil gerne ungå at belaste servern med at den skal slette noget hvergang den så skal sætte noget ind, og jeg gider ikke selv kører en eller anden fil hver 3. dag for at holde mængden af beskeder nede. Eller nogen idéer hvis man ikke kan sætte en grænse på?
Avatar billede arne_v Ekspert
15. januar 2004 - 00:50 #1
Næppe.

Enten må INSERT slette.

Eller så må du lave en periodisk slet.

En database vil ikke slette per magi.

Med en anden database kunne du have lavet det med en trigger
på din INSERT.

Men det erstadig det samme.
Avatar billede Slettet bruger
15. januar 2004 - 01:55 #2
Hvis det var for at undgå et køre slettefunktionen hver eneste gang på dine mest belastede side, kunne du for eksempel bare køre den på en ikke helt så besøgt side: login-siden måske?
Avatar billede bleze Nybegynder
15. januar 2004 - 09:48 #3
prøv når du henter fra tabellen at bruge SELECT TOP 100.... 

lav et program der en gang i døgnet ryder op i dine tabeller

trigger er ikke en god idé hvis hastigheden er vigtig. lav oprydning en gang i døgnet feks kl 4 om natten
Avatar billede arne_v Ekspert
15. januar 2004 - 09:59 #4
Trigger er slet ikke ide !  (MySQL understøtter ikke triggers)
Avatar billede bleze Nybegynder
15. januar 2004 - 10:05 #5
Heller ikke i 5'eren som har stored procs (som en trigger jo også er)...  Jeg har ikke kigget på 5'eren skal det lige siges
Avatar billede arne_v Ekspert
15. januar 2004 - 10:11 #6
5'eren burde enten have eller vil få triggers.

Men 5.0 er kun tilgængelig i Alpha Preview. Og dermed uinteressant.
Avatar billede bleze Nybegynder
15. januar 2004 - 10:14 #7
Det er også lige meget, det var dig selv der foreslog triggers, jeg siger bare det er en dårlig idé hvis hastigheden er vigtig. Vil mene en TOP X er bedre på tabellen som self har de rigtige indexes
Avatar billede arne_v Ekspert
15. januar 2004 - 12:39 #8
Jeg foreslog ikke triggers.

Jeg sagde at hvis det havde været en anden database (end MySQL), så kunne
man have brugt triggers.
Avatar billede jammerlab Nybegynder
15. januar 2004 - 13:04 #9
sandbox> login siden bliver brugt meget :)

bleze> "lav et program der en gang i døgnet ryder op i dine tabeller" ... så skal det vel være på min ejen server for jeg kan dette? ... og det er det ik, og jeg har hellere ikke adgang til den.
Avatar billede arne_v Ekspert
15. januar 2004 - 13:06 #10
Du kan da sagtens lave det fra en protected database administrations side som
du laver i PHP.
Avatar billede jammerlab Nybegynder
15. januar 2004 - 16:25 #11
anre_y> "protected database administrations side" huh? Altså jeg er med på jeg kan lave en side i PHP som slette de indlæg der nu er for mange af... men så skal JEG jo opdatere den når du nu er... og det syntes jeg enlig ikke om :| Men er det virkelig den sidste løsning?
Avatar billede arne_v Ekspert
15. januar 2004 - 16:34 #12
protected = beskyttet af administrator brugernavn / password

Jeg tror at det er den mest praktiske løsning.

Du kunne evt. lave et lille script på din egen PC der køres ved boot eller
på et bestemt tidspunkt af døgnet (hvor den normalt er tændt) og sender
en request til det PHP script på dit web hotel.

Så bliver det kørt ca. en gang om dagen uden at du skal gøre
noget manuelt.
Avatar billede jammerlab Nybegynder
15. januar 2004 - 17:15 #13
Ja jow :| det var jeg jo klar over jeg kunne lave hehe :P Men jeg ledte jo efter en anden løsning som åbenbart ikke findes :|
Avatar billede likeaprayer Nybegynder
15. januar 2004 - 22:00 #14
hvorfor laver du ikke bare en

if(mysql_num_rows(mysql_query("select * from dinechatbeskeder"))>200)
{
  $q = mysql_query("select id from dinechatbeskeder order by id DESC limit 1");
  $r=mysql_fetch_array($q);
  mysql_query("delete from dinechatbeskeder where id < ".($r['id']-100));
}

eller noed!..
kys fra din skat!
Avatar billede jammerlab Nybegynder
15. januar 2004 - 23:05 #15
Jamen lille mads :) I know... men så

1. skal det jo køres enten hver gang en bruger gør noget.
2. jeg skal selv kører det når jeg vil tømme ud i mysql'en.
3. eller lave noget så det bliver kørt det og det tidspunkt på min com.

Men ingen af dem jeg er så pokkers glad for :|
Avatar billede Slettet bruger
15. januar 2004 - 23:53 #16
Er det din egen server? Hvis ja, kan du sætte et cron-job op på serveren, der sletter gammelt skrammel hver nat klokken 5.
Avatar billede jammerlab Nybegynder
16. januar 2004 - 13:28 #17
Kommentar: talker
15/01-2004 13:04:31

bleze> "lav et program der en gang i døgnet ryder op i dine tabeller" ... så skal det vel være på min ejen server for jeg kan dette? ... og det er det ik, og jeg har hellere ikke adgang til den.

:)
Avatar billede jammerlab Nybegynder
22. januar 2004 - 16:56 #18
Når jeg lukker... intet af det jeg kan bruge desværre.
Avatar billede arne_v Ekspert
22. januar 2004 - 17:03 #19
Du har da ellers fået korrekt svar.
Avatar billede jammerlab Nybegynder
22. januar 2004 - 17:32 #20
True true, men spørgsmålet har jo ændret sig efter mulighederne blev elemineret :) Men hvis du føler dig snydt så kan jeg da godt oprette et spørgsmål med point til dig.
Avatar billede Slettet bruger
22. januar 2004 - 17:46 #21
Du bad om "idéer hvis man ikke kan sætte en grænse på", og det har du fået. Så kan du ikke bare tillade dig at lukke.
Avatar billede jammerlab Nybegynder
22. januar 2004 - 17:47 #22
Heller ik når der er intet af det jeg kan bruge i det tilfælde jeg nu sider i? :)
Avatar billede arne_v Ekspert
22. januar 2004 - 18:21 #23
Man plejer at give point for korrekte svar også selvom det er "dårlige nyheder".
Avatar billede jammerlab Nybegynder
22. januar 2004 - 18:23 #24
"Man plejer" << kan godt være du gør men hvis der ikke står noget i regelsættet om det så kan jeg ikke se hvad i klynker over hehe :) Jeg har jo ikke fået en løsning jeg kan bruge...
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