Kom ihåg mig?
Home Menu

Menu


INSERT går låååångsamt med InnoDB

Ämnesverktyg Visningsalternativ
Oläst 2010-12-21, 11:47 #1
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Standard INSERT går låååångsamt med InnoDB

Jag bytte nyss från MyISAM till InnoDB i min MySQL-databas men nu har jag märkt att INSERTs går extremt långsamt (tex 1 sekund i en tom tabell utan några index).

Jag har mätt i PHP med mico_time. Vet ej hur tillförlitligt det blir men med MyISAM mäter jag upp hundradelar eller tusendelar, så nog är det skillnad.

Måste man använda transaktioner med InnoDB, dvs lägga till START TRANSACTION; och COMMIT; vid varje fråga, eller kanske konfigurera databasen på något sätt om man inte kör transaktioner?

Kör version 5.1.41 på Ubuntu.
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-21, 12:28 #2
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Nej, du måste inte använda transaktioner med InnoDB. Det ska fungera precis som med MyISAM. Du ska inte behöva göra några ändringar i koden vad jag vet.

Väldigt konstigt att det tar så lång tid. Men du gör en hel transaktion när det tar så lång tid eller? Borde ju inte ta så mycket längre tid dock...
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-21, 13:39 #3
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Verkar som att det är konfigurationen av InnoDB som strular, jag har nog ett alldeles för lågt värde på innodb_buffer_pool_size, men det finns inget standard-värde angivet i my.cnf och om jag anger värden så tar det oerhört lång tid att starta om mysql och jag får felmeddelanden om att InnoDB ej är konfigurerat...

Edit: Var finns dessa inställningar för InnoDB om de inte finns i my.cnf?

Senast redigerad av andi den 2010-12-21 klockan 14:12
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-21, 15:09 #4
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av andi Visa inlägg
Verkar som att det är konfigurationen av InnoDB som strular, jag har nog ett alldeles för lågt värde på innodb_buffer_pool_size, men det finns inget standard-värde angivet i my.cnf och om jag anger värden så tar det oerhört lång tid att starta om mysql och jag får felmeddelanden om att InnoDB ej är konfigurerat...

Edit: Var finns dessa inställningar för InnoDB om de inte finns i my.cnf?
Du får default-värden för dom om du inte anger det i my.cnf, vilka beror på mysql-version men kassa brukar de vara. Det finnns färdiga my.cnf-filer att ladda ner om du googlar lite, för olika användning och ram-mängder. När du inte har någon koll alls på inställningar föreslår jag verkligen att du hittar en som verkar väl anpassad för dig.

För att ändra buffer pool size så måste du dumpa din data först och sen ta bort mysql:s datafiler. Detsamma gäller ett par andra inställningar. Om du inte gör det kommer inte innodb motorn att kunna gå igång, och därav ditt felmeddelande.

För att inte använda transaktioner sätter du autocommit till 1. För bra insert speed kan du även anpassa flush_log_at_trx_commit.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-21, 17:15 #5
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Jo, jag har hittat lite olika conf-filer och guider för InnoDB-parametrarna. Kunde bara inte göra några ändringar men ska testa att ta bort datafilerna, Tack!
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-22, 12:06 #6
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Testa med att köra i Workbech och ämför, jag har inga prolem med manuella insert i Workbechen även om jag kör en hel drös manuella INSERT i rad. och jag kör InnoDB.

Kan det vara något med connectionhanteringen gentemot PHP som strular?
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 17:41.

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