Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Pytanie natury filozoficznej ;)
Forum PHP.pl > Forum > Przedszkole
yalus
witam

mam dwa takie oto zapytania:

  1. UPDATE tblsettings SET change_network = (SELECT network FROM tblz WHERE tblsettings.mobile_number = tblz.mobile_phone);
  2. UPDATE tblsettings SET pik_off = (SELECT active FROM tblz WHERE tblsettings.mobile_number = tblz.mobile_phone);



czyli chcialbym zaktualizowac tabele tblsettings w oparciu o dane zawarte w tabeli tblz
zrobilem test na malej ilosci rekordow i chyba dziala tak jak sie tego spodziewam
dobrze to sie sprawdza na malej ilosci danych ..... ale obie tabele zawieraja ponad 100tys rekordow i gdy wykonalem powyzsze - tylko pierwsze zapytanie - z mysql manager trwalo to ponad 20min i nie zostalo ukonczone gdyz zkilowalem proces
i tutaj mam pytanie:
czy lepiej by bylo wykonac te zapytania z poziomu skryptu php na localhoscie ale czy nie zostanie on przerwany ze wzgledu na przekroczenie czasu na wykonanie skryptu?

co radzicie jak to zrobic szybko i bezbolesnie tak aby servera za mocno nie zapchac (moze sie zdazyc ze w tym samym czasie inni uzytkownicy beda chcieli skozystac z tabeli tblsettings)

pozdrawiam
erix
Podzapytania zawsze będą spowalniać cały proces.

Cytat
co radzicie jak to zrobic szybko i bezbolesnie tak aby servera za mocno nie zapchac (moze sie zdazyc ze w tym samym czasie inni uzytkownicy beda chcieli skozystac z tabeli tblsettings)

Z tego, co mi się wydaje, trzeba by było przeprojektować tabelę... Ale podałeś za mało informacji.
yalus
dzieki za zainteresowanie tematem,

co masz na mysli mowiac: 'przeprojektowac tabele'?

tabele wygladaja tak:


  1. CREATE TABLE `tblsettings` (
  2. `mobile_number` varchar(11) NOT NULL DEFAULT '00000000000',
  3. .
  4. .
  5. .
  6. `change_network` char(50) DEFAULT NULL,
  7. `pik_off` char(3) DEFAULT NULL,
  8. UNIQUE KEY `mobile_number` (`mobile_number`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=latin1
  10.  
  11.  
  12. CREATE TABLE `tblz` (
  13. `mobile_phone` char(11) DEFAULT NULL,
  14. `network` char(50) DEFAULT NULL,
  15. `active` char(50) DEFAULT NULL
  16. ) ENGINE=MyISAM DEFAULT CHARSET=latin2
erix
Cytat
co masz na mysli mowiac: 'przeprojektowac tabele'?

Bo trochę nie rozumiem celu, dla którego robisz takie skecze. [;
yalus
Cytat(erix @ 19.06.2009, 12:42:07 ) *
Bo trochę nie rozumiem celu, dla którego robisz takie skecze. [;


a dlaczego uwazasz ze to jest skecz?


poprostu chce zaktualizowac dane w jednej tabeli w oparciu o dane zawartej w drugiej
ale ok dzieki za odpowiedz, nie zawsze mozna uzyskac satysfakcjonujaca odpowiedz - odpale zapytania z mymanagera i pojde na kawe winksmiley.jpg


pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.