Zapytanie mysql a ilosc rekordow w bazie.
Łukasz Jachymczyk - 09-09-2006 01:08
Zapytanie mysql a ilosc rekordow w bazie.
Witam Co jest grane, jesli wykonanie zapytania mysql:
SELECT b.* FROM `branze` AS b WHERE (SELECT COUNT(*) FROM firmy WHERE braid = b.id AND powid = '1') > 0 ORDER BY RAND() LIMIT 0,10
na bazie, gdzie tabela branze ma 1115 a firmy 201397 rekordow zawsze lub prawie zawsze powoduje blad "1053: Server shutdown in progress"? Domyslam sie, ze chodzi o rozmiary tabel - czyzby mysql nie radzil sobie z taka iloscia danych? A moze zapytanie jest zle skonstruowane? Moze serwer zle skonfigurowany?
-- lfx
Przemyslaw Popielarski - 09-09-2006 01:08
Łukasz Jachymczyk wrote: > SELECT b.* FROM `branze` AS b WHERE (SELECT COUNT(*) FROM firmy WHERE > braid = b.id AND powid = '1') > 0 ORDER BY RAND() LIMIT 0,10 > > na bazie, gdzie tabela branze ma 1115 a firmy 201397 rekordow zawsze > lub prawie zawsze powoduje blad "1053: Server shutdown in progress"? > Domyslam sie, ze chodzi o rozmiary tabel - czyzby mysql nie radzil > sobie z taka iloscia danych? A moze zapytanie jest zle skonstruowane? > Moze serwer zle skonfigurowany?
W zadnym wypadku nie podawaj wersji oprogramowania, bo moze to tylko utrudnic diagnostyke.
Nie podawaj tez nigdy co wlasciwie Twoje zapytanie ma robic. To, wiadomo, jest scisla tajemnica, a nuz jeszcze ktos by to przepisal na group by + having i katastrofa gotowa.
-- ../ premax ../ premax@hot.pl ../ koniec i bomba, a kto czytal ten traba. w.g.
Łukasz Jachymczyk - 09-09-2006 01:08
Dnia Wed, 30 Aug 2006 13:16:59 +0200, Przemyslaw Popielarski napisał(a):
> W zadnym wypadku nie podawaj wersji oprogramowania, bo moze to tylko > utrudnic diagnostyke.
Mysql 4.1.19. Zapytanie jest wykonywane ze skryptu php na innym serwerze niz jest baza - moze to tez ma znaczenie.
> Nie podawaj tez nigdy co wlasciwie Twoje zapytanie ma robic. To, > wiadomo, jest scisla tajemnica, a nuz jeszcze ktos by to przepisal na > group by + having i katastrofa gotowa.
Chyba z samego zapytania widac, co ono robi. Ale oczywiscie opisze Ci to: zapytanie ma wybrac losowo 10 branz z tabeli `branze` i ma to zrobic w taki sposob, zeby zadna wybrana branza nie byla 'pusta'. Innymi slowy, pozdzapytaniem 'SELECT COUNT(*)...' sprawdzam, czy do danego rekordu (branzy) przypisana jest jakas firma. Ot co.
-- Łukasz Jachymczyk http://fatcat.ftj.agh.edu.pl/~lfx/
Przemyslaw Popielarski - 09-09-2006 01:08
Łukasz Jachymczyk wrote: > Innymi slowy, pozdzapytaniem 'SELECT COUNT(*)...' sprawdzam, czy do > danego rekordu (branzy) przypisana jest jakas firma. Ot co.
To nie mozesz tego inner joinem zrobic? Sprobuj tez wykonac to zapytanie na nowszej wersji z linii 4.1 (4.1.21) lub najlepiej 5.0.24.
p.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
[MySQL] Czy da =?ISO-8859-2?Q?si=EA_wykonac_takie_powi=B1z?==?ISO-8859-2?Q?anie_mi=EAdzy_tabelami=2C_i_jak_to_odpyta=E6_? ==?ISO-8859-2?Q?=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plred-hacjenda.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|