WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   PHP script för att tömma en tabell (https://www.wn.se/forum/showthread.php?t=1052564)

MusikMixen 2012-03-07 15:35

PHP script för att tömma en tabell
 
Har en chatt som tydligen sparar inläggen hur länge som helst. Är det någon som kan hjälpa mig med att fixa ett script som jag kan koppla till cron så det körs varje natt?

Scriptet ska alltså tömma hela tabellen som heter: cometchat_chatroommessages
Databasen heter: motesplats

Tack på förhand!

najk 2012-03-07 15:54

Måste det vara ett php script, denna rad borde göra typ samma, taget ur huvudet så kolla gärna =)
Kod:

echo "TRUNCATE TABLE cometchat_chatroommessages" | mysql -hhost -ulogin -ppassword -Dmotesplats

MusikMixen 2012-03-07 15:59

Citat:

Ursprungligen postat av najk (Inlägg 20434415)
Måste det vara ett php script, denna rad borde göra typ samma, taget ur huvudet så kolla gärna =)
Kod:

echo "TRUNCATE TABLE cometchat_chatroommessages" | mysql -hhost -ulogin -ppassword -Dmotesplats

Det fungerar galant! Stort tack... :)

nosnaj 2012-03-07 16:21

Om det även sparas tid i tabellen är det bättre att radera alla inlägg som är äldre än x timmar så slipper det bli tomt vid varje körning :)

MusikMixen 2012-03-07 16:25

Citat:

Ursprungligen postat av nosnaj (Inlägg 20434421)
Om det även sparas tid i tabellen är det bättre att radera alla inlägg som är äldre än x timmar så slipper det bli tomt vid varje körning :)

Den sparar tid, men jag vill att den tömmer allt, det är en öppen chatt. Det gör inget om den är tom inför dagen :) Det fungerar galant nu med cron och allt..

Däremot har jag en fråga till :)
Om man vill optimera hela databasen varje natt, hur ser det ut då? Det gäller fortfarande motesplatsen.
Inne i phpmyadmin kan man välja optimera, det hade varit kalas om man kunde köra det som en cron vid 5 tiden på morgonen. Det är väl knappast ngt som är dåligt väl?

Edit: Hittade denna: 0 1 * * * mysqlcheck --optimize --all-databases -u root -p[password] > /dev/null

Clarence 2012-03-07 16:44

Citat:

Ursprungligen postat av MusikMixen (Inlägg 20434422)
Den sparar tid, men jag vill att den tömmer allt, det är en öppen chatt. Det gör inget om den är tom inför dagen :) Det fungerar galant nu med cron och allt..

Däremot har jag en fråga till :)
Om man vill optimera hela databasen varje natt, hur ser det ut då? Det gäller fortfarande motesplatsen.
Inne i phpmyadmin kan man välja optimera, det hade varit kalas om man kunde köra det som en cron vid 5 tiden på morgonen. Det är väl knappast ngt som är dåligt väl?

Edit: Hittade denna: 0 1 * * * mysqlcheck --optimize --all-databases -u root -p[password] > /dev/null

Det kan ta lång tid att köra och blockera tabellen under tiden, hastigheten brukar ligga någonstans runt 10k rader i sekunden. Så med en stor tabell kan den bli låst i timmar.

Vad är anledningen till att du kör en optimize varje dag?

Skulle inte rekommendera det då det i stort sett aldrig gör nämnvärd nytta att köra så ofta. Det enda tillfället när det faktiskt kan vara riktig nytta är med fragmenterad innodb data och då brukar man prata om veckovis förutsatt att du har väldigt mycket datautbyte i tabellerna. Med en inte så aktiv sajt skulle jag hellre lägga den en gång i månaden eller så.

Det är lite som att rekommendera alla desktop-användare att köra en defragmentering dagligen. Det gör föga nytta men tar tid och resurser.

MusikMixen 2012-03-07 16:56

Citat:

Ursprungligen postat av Clarence (Inlägg 20434425)
Det kan ta lång tid att köra och blockera tabellen under tiden, hastigheten brukar ligga någonstans runt 10k rader i sekunden. Så med en stor tabell kan den bli låst i timmar.

Vad är anledningen till att du kör en optimize varje dag?

Skulle inte rekommendera det då det i stort sett aldrig gör nämnvärd nytta att köra så ofta. Det enda tillfället när det faktiskt kan vara riktig nytta är med fragmenterad innodb data och då brukar man prata om veckovis förutsatt att du har väldigt mycket datautbyte i tabellerna. Med en inte så aktiv sajt skulle jag hellre lägga den en gång i månaden eller så.

Det är lite som att rekommendera alla desktop-användare att köra en defragmentering dagligen. Det gör föga nytta men tar tid och resurser.

Jag märker stor skillnad på webbsidan och radio (sökningar) när man har optimerad databasen. Jag har satt cronet på att köra varje månad den 15:e så vi får se hur det går.
Jag la in koden direkt i mysql och det tog 10 sekunder så databaserna är inte speciellt stora än men servern är en gammal goding som rullar på :)

Danski 2012-03-09 11:45

Med reservation för att jag inte vet hur databasen är strukturerad eller ditt kunnande om databaser.

Låter som att du har ganska allvarliga optimeringsproblem som löses genom högst tillfälliga fixar (tömma tabeller, optimize etc.).
Börja med kolla alla slow queries, kan dessa skrivas på bättre sätt? Finns det Index i tabellerna som SQL kan nyttja? Finns det många tabeller, fundera på om du ska öka antalet tabeller som kan vara öppna samtidigt.

Kollade som hastigast på din sida, där MÅSTE du verkligen ändra koden.
*37 st CSS-filer för förstasidan enbart?
*Någon CSS loopar hämtning på bilder som inte finns (stop.png)
*En snabb räkning i koden hittar jag minst 31 javascript

Dessa tre saker hade med relativt lite besökare kunnat sänka även googles serverpark. Du dödar både din egen server och besökarnas webbläsare.

MusikMixen 2012-03-09 15:32

Citat:

Ursprungligen postat av Danski (Inlägg 20434591)
Med reservation för att jag inte vet hur databasen är strukturerad eller ditt kunnande om databaser.

Låter som att du har ganska allvarliga optimeringsproblem som löses genom högst tillfälliga fixar (tömma tabeller, optimize etc.).
Börja med kolla alla slow queries, kan dessa skrivas på bättre sätt? Finns det Index i tabellerna som SQL kan nyttja? Finns det många tabeller, fundera på om du ska öka antalet tabeller som kan vara öppna samtidigt.

Kollade som hastigast på din sida, där MÅSTE du verkligen ändra koden.
*37 st CSS-filer för förstasidan enbart?
*Någon CSS loopar hämtning på bilder som inte finns (stop.png)
*En snabb räkning i koden hittar jag minst 31 javascript

Dessa tre saker hade med relativt lite besökare kunnat sänka även googles serverpark. Du dödar både din egen server och besökarnas webbläsare.

Tack för ditt svar. Det är joomla installation så det finns endel tabeller, 217 st.
Index finns det eller primary. Jag väntar bara på en uppdatering sedan ska allt installeras på joomla 2.5 istället, då lär en massa tabeller försvinna samt förhoppningsvis minskas javascript och css filerna.

Jag har testat nga plugins som ska speeda upp sidan men allt blir helt fuckt up då, så jag vågar inte testa mer :)


Alla tider är GMT +2. Klockan är nu 07:51.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson