FAQ |
Kalender |
Ämnesverktyg | Visningsalternativ |
![]() |
#11 | ||
|
|||
Medlem
|
Kollade databasen nu och den är redan InnoDB
Ja jag kör ASP Klassiskt för det är det enda jag kan ![]() ![]() Förstår inte din pseudo-kod kod riktigt. Snackar vi mysql eller VB/ASP Och vilket av förslagen jag gav bör jag använda en enda insert med massa olika rader i eller en insert per rad. Om jag förstår det hela rätt nu så bör min mysql se ut något i stil med detta? Rätta mig om jag har fel. Kod:
begin; INSERT INTO Table ( Col1, Col2, Col3 ) VALUES ( Value1, Value2, Value3 ), ( Value4, value5, Value6 ), ( Value7, Value8, Value9 ); Commit; |
||
![]() |
![]() |
![]() |
#12 | ||
|
|||
Administratör
|
Citat:
Att lägga till många rader i ett statement är snabbare, upp till någon punkt mellan 100 och 10 000 rader beroende på omständigheterna. Det har heller ingen nämnvärd risk att ställa till jobbiga problem så länge du inte använder MyISAM.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#13 | ||
|
|||
Medlem
|
Ok då är jag med på pseudo visste inte riktigt bar aom det var sql du prattade om eller om det var programmatiskt men det jag skrivit ovan kommer läsa in allt i db:n och när allt väl är där så trycker den igenom förändringen på direkten.
Antar att min delete även ska ligga mellan begin och commit kom jag på i efterhand men då kunde jag inte redigera. antalet rader är minimalt men från 0 upp till 50-60 så själva sql delen är väl minimal i tid och det som faktiskt tar tid är mina sidhämtningar. |
||
![]() |
![]() |
![]() |
#14 | ||
|
|||
Administratör
|
Citat:
Och ja, din delete ska absolut ligga mellan starten och commiten av transaktionen. Menar du 50-60 sekunder? Isåfall föreslår jag att du låter scriptet hämta datan först och sen ansluter till databasen och lägger in datan i en endaste select. Utifall att scriptet hänger sig kan det annars vara så att du inte har en bra idle timeout mot databasen (för jag antar att du inte har kontroll över databasserverns inställningar?) vilket kan orsaka problem. Är det ingen viktig/populär sajt kan du förvisso skippa det och hoppas att det funkar och ändra det först om det faktiskt blir ett problem. Annars är code for failure en bra praktik. Allt som kan lägga av kommer förr eller senare göra det, spelar det då någon roll? Vad händer om 3e part du hämtar data från går ner? Vad händer om din databasserver går ner? Vad händer när du får deadlocks på db transaktionerna? Vad händer när du har en bugg i din datahämtning som gör att scriptet kör in i oändligheten? Men som sagt, detta kan vara överkurs i ditt fall.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#15 | ||
|
|||
Medlem
|
50 - 60 då menar jag bara poster i databasen som ska läggas in.
Scriptet tar 1-4 sekunder att köra typ. Det är inte många som ska använda den kanske 20-30 pers. I allra värsta fall upp emot 80 pers men det kommer mest troligt inte hända ![]() Räkna in alla möjliga fel är inget jag orkar lägga tid på i detta projekt blir det ett fel så får nån rapportera det så får jag kika på det bara ![]() Tror jag kommer göra som du skriver samla in allt från de olika sidorna och sedan kör jag in allt i db:n på slutet. Även om sidan inte tar så lång tid att ladda nu så kommer den sedan hämta från ytterligare källor så det kommer ju ta längre tid senare. |
||
![]() |
![]() |
Svara |
|
|