![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 27.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam pewną zagwozdkę otóż, mam pewien skrypt, który na mysql 5.1(debian squeeze) działa perfekcyjnie a na mysql 5.5(debian wheezy) już nie tak dobrze, a mianowicie zaimplementowanie ok. 6k rekordów zajmuje mu z 3 minuty albo dłużej, ogólnie jest to w ch.... wolne. Pokaże Wam skrypt, jako że z php rzadko mam do czynienia to nie wiem w czym tkwi problem...
no i to właśnie ten piękny skrypt, niestety nie wiem w czym tkwi problem i jak to zmienić, ale poszukałem kogoś kto ma podobny problem i znalazłem takie rozwiązanie, które u mnie podziałało perfekcyjnie, a mianowicie zmienienie silniku tabeli na MYISAM, rekordy wczytują się szybciej niż dotychczas, dlaczego? Prosiłbym o odpowiedź i ewentualnie nakierowanie co jest nie tak w skrypcie, że na domyślnym silniku wczytuje się bardzo długo(przypomne, że na mysql5.1 wczytuje się bardzo szybko) Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
... Prosiłbym o odpowiedź i ewentualnie nakierowanie co jest nie tak w skrypcie, że na domyślnym silniku wczytuje się bardzo długo(przypomne, że na mysql5.1 wczytuje się bardzo szybko) Od wersji mysql 5.5 InnoDB jest domyślnym silnikiem tabel tworzonych bez podania konkretnego silnika w CREATE TABLE. Przedmówcy wyjaśnili, że inserty do InnoDB wykonują się szybciej albo zawarte w jednej transakcji, albo jako jeden duży insert, albo też przy wyłączonym na czas insertów autocommit. Bo bez tego każdy insert jest osobną transakcją (InnoDB to silnik transakcyjny, w przeciwieństwie do wcześniejszego domyślnego MyISAM) a każda nawet najmniejsza zakończona transakcja z definicji wymaga zapisania stanu na dysku zamiast trzymania w buforach. Oczywiście powrot do MyISAM przywróci poprzedni stan działania, jednak w roku 2015 wypadałoby znać InnoDB, nie mówiąc o zaprzestaniu używania przestarzałych funkcji z API mysql_. http://dev.mysql.com/doc/refman/5.5/en/inn...default-se.html |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 11:51 |