(MYSQL) INSERT INTO (table) SELECT * i transakcje
Paweł Janosz - 28-02-2007 00:07
(MYSQL) INSERT INTO (table) SELECT * i transakcje
Witam, do wypełniania nowej czystej tabeli stosuje składnie INSERT INTO (table) SELECT .... ale tak naprawdę chciałbym zapytać o transakcje...albo o funkcjonalność...
Zastanawiam się dlaczego rekordy pojawiają się dopiero po zakończeniu działania selecta, który np. działa godzinę lub dwie. Chciałbym by on po prostu dodawał kolejne rekordy w czasie rzeczywistym.
czy to bardziej sprawa transakcji, czy po prostu takiej obsługi poniekąd zagniezdzonego selecta. A jeśli transakcji - to można ją jakoś wyłączyć przed tą komendą a później włączyć. Tabele są MyISAM....
Paweł --
Maciek Dobrzanski - 28-02-2007 00:07
In news:es1a1a$812$1@atlantis.news.tpi.pl, Paweł Janosz <pawel@expert.wroc.pl> wrote:
> do wypełniania nowej czystej tabeli stosuje składnie > INSERT INTO (table) SELECT .... [..] > Zastanawiam się dlaczego rekordy pojawiają się dopiero po zakończeniu > działania selecta, który np. działa godzinę lub dwie. [..] > A jeśli transakcji - to można ją jakoś wyłączyć przed tą komendą a > później włączyć. > Tabele są MyISAM....
Jeśli MyISAM to nie transakcje. Natomiast taki efekt powstaje najprawdopodobniej w wyniku optymalizacji operacji masowego wstawiania. Dane/statystyki tabeli nie są uaktualniane przy każdym wpisanym wierszu, a dopiero po zakończeniu operacji. W związku z tym nie ma do nich zwyczajnie dostępu z poziomu innych wątków (taki luźny wniosek na podstawie tego co pamiętam, może nie do końca prawdziwy). Oczywiście to przy włączonym trybie współbieżności INSERT/SELECT na MyISAM, w przeciwnym razie SELECT będzie tak czy siak czekał na zakończenie operacji INSERT.
Maciek
=?iso-8859-2?Q?Jaros=B3aw_Szatkiewicz?= - 01-03-2007 00:00
Siemanko, mysle, ze zastosowanie EXPLAIN duzo wyjasni :)
"Paweł Janosz" <pawel@expert.wroc.pl> napisał(a): > Witam, > do wypełniania nowej czystej tabeli stosuje składnie > INSERT INTO (table) SELECT .... > ale tak naprawdę chciałbym zapytać o transakcje...albo o > funkcjonalność... > > Zastanawiam się dlaczego rekordy pojawiają się dopiero po zakończeniu > działania selecta, który np. działa godzinę lub dwie. > Chciałbym by on po prostu dodawał kolejne rekordy w czasie rzeczywistym. > > czy to bardziej sprawa transakcji, czy po prostu takiej obsługi poniekąd > > zagniezdzonego selecta. > A jeśli transakcji - to można ją jakoś wyłączyć przed tą komendą a > później > włączyć. > Tabele są MyISAM.... > > Paweł > --
Artur Muszynski - 01-03-2007 00:00
Paweł Janosz wrote: > Witam, > do wypełniania nowej czystej tabeli stosuje składnie > INSERT INTO (table) SELECT .... > ale tak naprawdę chciałbym zapytać o transakcje...albo o > funkcjonalność... > Zastanawiam się dlaczego rekordy pojawiają się dopiero po zakończeniu > działania selecta, który np. działa godzinę lub dwie. > Chciałbym by on po prostu dodawał kolejne rekordy w czasie > rzeczywistym. > czy to bardziej sprawa transakcji, czy po prostu takiej obsługi > poniekąd zagniezdzonego selecta. > A jeśli transakcji - to można ją jakoś wyłączyć przed tą komendą a > później włączyć. > Tabele są MyISAM....
W MyISAM transakcji nie ma, ale atomowość pojedynczych poleceń SQL jest zachowana (na szczęście!). Wyłączyć się tego afaik nie da.
artur
Maciek Dobrzanski - 01-03-2007 00:00
In news:es3itr$681$1@mx1.internetia.pl, Artur Muszynski <arturm@union.wytnijto.com.pl> wrote:
> W MyISAM transakcji nie ma, ale atomowość pojedynczych poleceń SQL > jest zachowana (na szczęście!). Wyłączyć się tego afaik nie da.
Nie do końca jest to prawdą jakoby ;) Nad czym zresztą Depesz niedawno ubolewał.
Maciek
Artur Muszynski - 01-03-2007 00:01
Maciek Dobrzanski wrote: > In news:es3itr$681$1@mx1.internetia.pl, > Artur Muszynski <arturm@union.wytnijto.com.pl> wrote: > >> W MyISAM transakcji nie ma, ale atomowość pojedynczych poleceń SQL >> jest zachowana (na szczęście!). Wyłączyć się tego afaik nie da. > > Nie do końca jest to prawdą jakoby ;) Nad czym zresztą Depesz niedawno > ubolewał.
Hmm, no to przeoczyłem jakąś ciekawą dyskusję :-(
artur
Yanks - 01-03-2007 01:02
Serdeczne dzieki za odpowiedz. Pewno to i lepiej ze działa za jednym razem. Bolało mnie po prostu że zapytanie sql które działa kilka godzin - musi tyle bo wstawiam miliony rekordów do nowej tabeli - nie daje żadnych znaków zycia. Aż nie skończy.
Nie wymagam by był jakiś progressbar :) ale może ktoś podpowie albo poda jakiś link...
Jeszcze raz dzieki.
ps. czy ja dobrze zrozumiałem na MyIsam INSERT INTO tabela from tabela2, zablokuje mi tabele2 az zapytanie nie wykona sie do konca? Wiec lepsze Inno ale wtedy pod Windowsem mogę mieć jeden plik z bazą danych, i znowu się sprawa komplikuje bo chciałbym mieć logi miesięczne w oddzielnych tabelach, w oddzienych plikach...hmmmm
Pawel
Maciek Dobrzanski - 02-03-2007 00:05
"Yanks" <pawel.janosz@expert-monitor.pl> wrote in message news:es585v$cmk$1@news.dialog.net.pl...
> ps. czy ja dobrze zrozumiałem na MyIsam INSERT INTO tabela from tabela2, > zablokuje mi tabele2 az zapytanie nie wykona sie do konca?
Dla zapisu, tak.
> Wiec lepsze Inno ale wtedy pod Windowsem mogę mieć jeden plik z bazą > danych, > i znowu się sprawa komplikuje bo chciałbym mieć logi miesięczne w > oddzielnych tabelach, > w oddzienych plikach...hmmmm
W InnoDB INSERT ... SELECT generuje shared locki, czyli w zasadzie zachowanie bazy będzie podobne jak w przypadku MyISAM. A co do drugiego, odpowiednią opcją możesz wymusić na InnoDB wykorzystanie osobnego pliku na każda tabelę, zamiast współdzielonej przestrzeni.
Maciek
Paweł Janosz - 02-03-2007 00:06
cut > odpowiednią opcją możesz wymusić na InnoDB wykorzystanie osobnego pliku na > każda tabelę, zamiast współdzielonej przestrzeni. > > Maciek
Instrukcja mysql kiedyś mówila ze pod Windą, nie można tego zrobić, coś się zmieniło????
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] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[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 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
zanotowane.pldoc.pisz.plpdf.pisz.plwawa19wwa91.pev.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 |
|