![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
![]() W tabeli mam ponad 16000 rekordów do których kolejno wykonuje zapytania (UPDATE). Skrypt wykonujący te 16000 zapytań trwa około godziny i mam pytanie czy jest jakieś sposób aby wykonywało się to szybciej ![]() Po testach wyszło mi że im wiecej rekordów w tabeli tym dłużej trwa pojedyncze zapytanie. Raczej nie mogę podzielić tej tablicy na kilka mniejszych :/ |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 139 Pomógł: 10 Dołączył: 6.07.2007 Skąd: opole Ostrzeżenie: (0%) ![]() ![]() |
masz w tabeli indeksy na polach kotrych szukasz?
wklej jakies przyklady, nikt nie zgadnie czemu cos Ci wolno dziala -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 15.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
mozesz podzielic na kilka updatow
poniewaz wtedy tranzakcja bedzie mniejsza. Coraz wiekszy update zajmuje coraz wiecej zasobow poniewaz baza danych musi moc w kazdym momencie zrobic rollback ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
A możesz przybliżyć zapytanie UPDATE ?
Trochę dziwne, że musisz je wywoływać 16000 razy w skrypcie - pokaż je - może uda sie je zooptymalizować... -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
już się robi Panowie
![]()
zapytanie jak zapytanie, nic skomplikowanego 16k zapytan bo tyle jest zespołów :] mozesz podzielic na kilka updatow poniewaz wtedy tranzakcja bedzie mniejsza. niestety juz wiem ze mi nic to nie da bo np. zapytanie odnoszace sie do tabeli majacej 128 rekordow trwa około 0.02s a zapytanie do tabeli ktora ma te 16k rekordów trwa już 0.1s, róznica jak widac jest spora Rekordów 16 384 Długość rekordu ø 82 Rozmiar rekordu ø 93 bajtów Ten post edytował bogdanofnascie 29.09.2007, 23:08:47 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 5.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
A wklej info o tabeli.
Wpisz show create table ranking7; Ten post edytował xarr 1.10.2007, 09:19:03 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
CREATE TABLE `ranking7` (\n `ID` int(10) unsigned NOT NULL auto_increment,\n `teamID` int(11) NOT NULL,\n `teamName` text NOT NULL,\n `leagueID` int(8) NOT NULL,\n `arenaCapacity` int(11) NOT NULL,\n `points` int(2) NOT NULL,\n `wins` int(2) NOT NULL,\n `draws` int(2) NOT NULL,\n `loses` int(2) NOT NULL,\n `gScores` int(11) NOT NULL,\n `gLost` int(11) NOT NULL,\n `ranq` int(11) NOT NULL,\n `lposition` int(2) NOT NULL,\n `league` text NOT NULL,\n PRIMARY KEY (`ID`)\n) ENGINE=MyISAM AUTO_INCREMENT=16385 DEFAULT CHARSET=latin2
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 139 Pomógł: 10 Dołączył: 6.07.2007 Skąd: opole Ostrzeżenie: (0%) ![]() ![]() |
dodaj index na teamID
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
tzn. ? co masz na mysli ?
![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 139 Pomógł: 10 Dołączył: 6.07.2007 Skąd: opole Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Indeksy są tworzone w celu przyspieszenia operacji:
nie wiem tym samym co zyskam wstawiając taki indeks |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 1 Dołączył: 1.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Indeksy są tworzone w celu przyspieszenia operacji: dostępu do danych w posortowanych według kolumn indeksowanych UPDATE musi najpierw znalezc wiersz ktory ma zmienic. Jak twoja tabela ma kupe wierszy, to wyszukiwanie bedzie zajmowac wiecej czasu niz samo wstawianie. Dodanie indexu przyspiesza wyszukiwanie, wiec i rowniez cale zapytanie. Tak na dobra sprawe to spowolnienie widac tylko na tabelach ktore maja tak malo wierszy, ze i tak sie nie musisz indeksami przejmowac. Czytanie ze zrozumieniem pomaga. ![]() |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
dzięki wielkie chłopaki
![]() Ten post edytował bogdanofnascie 2.10.2007, 19:34:13 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 16:17 |