Centrum Fanów Symulatorów » Hardware & Software » MySQL vs Oracle
Napisz nowy temat    Odpowiedz do tematu

MySQL vs Oracle

Idź do strony 1, 2  Następny
Autor Wiadomość
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2004-06-26, 21:46      MySQL vs Oracle Odpowiedz z cytatem
No kurde mysql rulezuje.
Własnie wykonałem test na duzej tabeli danych textowych.
40 tys rekordów
tabela ma 13,6MB

Wyciągnięcie wszystkich danych to 7 sek, ale z 10 sek układa je apache w tabeli

Tylko to jest mały pikuś. Oracle nie ma w swoim SQLu możliwości okreslenia zakresu rekordów. np. że chcemy 100 rekordów od rekordu nr 5000.
I tu MySQl pokazuje pazurki. Wybranie 100 rekordów z posortowanej tablicy (sortowanie odbywa sie przed wybraniem rekordów (sic!)) trwa 0.3 sek.

Kumpel zaimplementował LIMIT dla oracla tworząc najpierw view z posortowanych danych, dodając kolumne z narastającym numerem po czym robiąc selecta z warunkiem na tej nowej kolumnie. I trwa to ponad 2 sek.

Obie bazy hulają na podobnych sprzetach (mysql na Athlonie 2500Barton a oracle na PentiumIV 2,4GHz). RAMu ta druga maszyna ma 1GB a moj 0.5GB.

PS. Jesli ktoś zna szybsza metodę zaimplementowania LIMITa w oraclu prosze o pilny kontakt.
 
Reklamy
Nogal


Dołączył: 18 Sie 2001
Posty: 5672
Miasto: Kraków

Post2004-06-26, 21:54      MySQL vs Oracle Odpowiedz z cytatem
Bluznisz synu Zreszta nie porownuj MySQLa ktory nadaje sie do obslugi stronek WWW z systemem jakim jest Oracle do obslugi baz i hurtowni danych o rozmiarach kilkuset gigabajtow
Zreszta swiadczy o tym sama liczba jaka przytaczasz - od kiedy 40 000 rekorod to duza tabela
 
w126


Dołączył: 04 Lip 2003
Posty: 589
Miasto: Warszawa

Post2004-06-26, 21:57      MySQL vs Oracle Odpowiedz z cytatem
MaXyM napisał:
Kumpel zaimplementował LIMIT dla oracla tworząc najpierw view z posortowanych danych, dodając kolumne z narastającym numerem po czym robiąc selecta z warunkiem na tej nowej kolumnie. I trwa to ponad 2 sek.

Zamiast tej dodatkowej kolumny mozna uzyc ROWNUM. Swoja droga jak on ja generuje, z sekwencji?

A na 'dylemat' postawiony w tytule odpowiedzialbym, ze jakbym sie bawil bazami danych hobbystycznie i za wlasne pieniadze, to zdecydowanie MySQL. Ale na szczescie hobby mam inne i ciekawsze.
 
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2004-06-26, 22:07      MySQL vs Oracle Odpowiedz z cytatem
Nogal, wiem wiem.
To był tekst zaczepny Mam świadomość że Oracle jest potężnym silnikiem ale sens jego uzywania staje sie uzasadniony gdy ilośc danych przekracza faktycznie Gigabajty. Tyle że wtedy trzeba pisac programy ktore inaczej korzystają z danych (czyt. podstawowym kryterium wyciagniecia danych jest wstepny warunek). Przyklad taki mamy np. w programie kadrowo-płacowym firmy Teta. Pomijając fakt że ten program ma wiecej bugow niz Windowsy to sposób poruszania sie po danych jest conajmniej niewygodny.

w126 przyznam ze nie znam szczegółów implementacji ale zakładam że użył rownum. Mimo wszystko zrobienie widoku i wybranie dopiero z niego danych nie jest zbyt optymalnym czasowo rozwiązaniem. Przynajmniej w porówaniu do MySQLa i jego instrukcji LIMIT.

Z drugiej strony b. ciekawy jestem jak zaimplementowali ta instrukcje w MySQLu.. lub na czym polega jej implementacja, biorąc pod uwage że dane przez okrojeniem LIMITem musza być posortowane etc.
 
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2004-06-26, 22:15      MySQL vs Oracle Odpowiedz z cytatem
Aaa. I zrobilem jeszcze jedną rzecz. Kolumnie po której sortuję nadałem atrybut INDEX (w MySQLu) Teraz wybranie 100 dowolnych posortowanych rekordów trwa 0.02 sek
Ale lol.. to 100 razy szybciej.

Przy okazji kiedys musialem zainstalowac sobie oracla na moim komputerze bo pisalem projekt na uczelnie. Takiej wielkiej kupy to dawno wczesniej nie widzialem. Bledy w installerze, toolsy pisane w Javie wolne jak cholera. Odpalenie serwisu Oracla przy starcie kompa spowodowało wydłużenie czasu jego uruchamiania do ok 1.5 min (z 20 sek). Ja wiem ze w Oraclu najwazniejsza wydajnosc przy naprawde b. duzej ilosci danych. Ale develperzy chyba lage połozyli na całą reszte. A może robia to specjalnie zeby miec za co brać kase za support
 
w126


Dołączył: 04 Lip 2003
Posty: 589
Miasto: Warszawa

Post2004-06-26, 22:19      MySQL vs Oracle Odpowiedz z cytatem
Jesli zrobil ten dodatkowy widok, to przypuszczam, ze jednak nie uzyl rownum. Tu sa przyklady z rownum do takiego problemu:
http://www.orafaq.com/faqsql.htm#ROWXtoY
Nie jestem pewiem, ale chyba ten chwyt z uzyciem MINUS moze byc najlepszy, bo zdaje sie, ze jest specjalna optymalizacja dla 'top N'.
 
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2004-06-26, 22:33      MySQL vs Oracle Odpowiedz z cytatem
Dzięki za ten link. Przekaże go koledze.
Mam jednak od razu pewną wątpliwość (i coś mi świta że obilismy się o to rok temu na projekcie). Mianowicie rownum przestanie działać jak wprowadzimy sortowanie. Bo pola sa najpierw wybierane ew generowany jest rownum a dopiero potem sortowane.

W ten sposób wiec nie da sie wybrać zakresu rekordów z posortowanych danych. Ale moze się mylę ??
 
w126


Dołączył: 04 Lip 2003
Posty: 589
Miasto: Warszawa

Post2004-06-26, 22:53      MySQL vs Oracle Odpowiedz z cytatem
Sortuje sie w podzapytaniu, a rownum ogranicza w zapytaniu glownym.
Zreszta co sie bede rozpisywal, jak w sieci wszystko mozna znalezc :
Cytat:
If you embed the ORDER BY clause in a subquery and place the ROWNUM condition in the top-level query, then you can force the ROWNUM condition to be applied after the ordering of the rows. For example, the following query returns the 10 smallest employee numbers. This is sometimes referred to as a "top-N query":

SELECT * FROM
(SELECT * FROM employees ORDER BY employee_id)
WHERE ROWNUM < 11;

In the preceding example, the ROWNUM values are those of the top-level SELECT statement, so they are generated after the rows have already been ordered by employee_id in the subquery.


Ostatnio zmieniony przez w126 dnia 2004-06-26, 22:56, w całości zmieniany 1 raz
 
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2004-06-26, 22:55      MySQL vs Oracle Odpowiedz z cytatem
No cieszę się że na forum jest ktos obeznany w Oraclu. Jesli to zadziała to faktycznie rozwiąże dośc powazny problem.
Dzięki
 
Greg


Dołączył: 17 Sie 2001
Posty: 1940
Miasto: Szczecin

Post2004-06-27, 17:42      MySQL vs Oracle Odpowiedz z cytatem
jeez, przeciez mysql zrobiono tylko i wylacznie pod internet, a oracle jest do wszystkiego. a jak cos jest do wszystkiego to ... niekoniecznie musi byc dobre do internetu .

w mysqlu wlasnie najwiekszy nacisk polozono na wybieranie rekordow (select) bo specjalisci doszli do wniosku, ze w zastosowaniach internetowych najczesciej sie wybiera wyniki z bazy, a relatywnie rzadziej sie np. je edytuje, usuwa, tworzy. jesli wezmiesz np. komende update to byc moze juz nie bedzie takiej roznicy wielkiej roznicy.

ale to nie zmienia faktu, ze mysql i tak rulezuje jesli chodzi o net tworcy podeszli z glowa i dla mnie dzisiaj to jest najlepsza baza danych na swiecie jesli idzie o zestaw www + baza danych.

zreszta z oraclem w takim php jak sie laczysz ? odbc tylko ? kiedys jak pisalem prace dyplomowa to mialem testy, z ktorych wychodzilo, ze polaczenia odbc sa ~ 9-10 wolniejsze od standardowo zaimplementowanego polaczenia z baza (np. mysql) w php. czyli wszelkie "smiecie", z ktorymi sie bedziesz laczyl przez odbc beda znacznie wolniejsze.

po prostu mysql jest tylko i wylacznie do netu i w tym jest najlepszy a oracle jest do czego innego. nie ma ich sensu porownywac. zreszta kazdy wie, ze mysql rzadzi w ogole open source rzadzi
 
Richie


Dołączył: 16 Sie 2001
Posty: 20333
Miasto: Lublin/Wrocław

Post2004-06-27, 17:51      MySQL vs Oracle Odpowiedz z cytatem
Mysql juz od dawna nie jest tylko do netu ostatnio czytalem na forum php.pl jakies testy hamerykanskie w zastosowaniach do duzych hurtowni danych, i byl oracle, postgressql, mssql i mysql, najszybszy byl mysql jednak
 
Nogal


Dołączył: 18 Sie 2001
Posty: 5672
Miasto: Kraków

Post2004-06-27, 18:12      MySQL vs Oracle Odpowiedz z cytatem
Od 3 m-cy pracuje przy rozwoju sporego systemu (waga kilkaset gigabajtow) na Oracle'u i moge powiedziec jedno:
DBMSy sa jak samochody - przy czym Oracle to bolid F1 - aby jezdzil potrzebuje zajebistych administratorow, konsultanotw ktorzy biora niesamowita kaske zeby wyszukac mozliwosc wykrzesania wszystkiego ze sprzetu i DBMSa, jest czula na najmniejsze zmiany. Jednak jesli jest to wszystko zrobione jak nalezy to inne wozy nie maja sie z nim co rownac.
Ale i tak moim ulubionym jest MS SQL Server 2000 - szczegolnie dzieki super narzedziom i dobremu helpowi


W MySQL jest juz autoryzacja ?
 
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2004-06-27, 18:48      MySQL vs Oracle Odpowiedz z cytatem
Co znaczy czy jest autoryzacja?
A nie była od dawna? normalnie zeby podlaczyc sie do bazy czy korzystac z danych tabel i/lub operacji na danych trzeba sie zalogowac userem i haslem
 
Greg


Dołączył: 17 Sie 2001
Posty: 1940
Miasto: Szczecin

Post2004-06-27, 20:40      MySQL vs Oracle Odpowiedz z cytatem
Richie napisał:
Mysql juz od dawna nie jest tylko do netu ostatnio czytalem na forum php.pl jakies testy hamerykanskie w zastosowaniach do duzych hurtowni danych, i byl oracle, postgressql, mssql i mysql, najszybszy byl mysql jednak

Richie, a moglbys znalezc ten watek ? Zalezy mi bo bede pisal magisterke i cosik tam o mysql wspomne i rozne takie porownania z innymi bazami bardzo by mi sie przydaly.

No i ciesze sie, ze Mysql tak dobrze wypadlo bo to moj ulubieniec
 
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2004-06-27, 22:07      MySQL vs Oracle Odpowiedz z cytatem
Niestety ja natrafiłem na poważny problem. Bardzo rozpowszechniona wersja MySQLa 3.23 ma błąd związany z definiocjami relacji między tabelami. Sp.ędziłem pół nocy wczoraj aby do tego dojść szukająć błędu.

Po prostu definicja tabeli z referencja klcza obcego zwracała błąd. Podczas gdy na drugim kompie z baza w wer. 4.x tabela sie tworzyla poprawnie.
 
Centrum Fanów Symulatorów » Hardware & Software » MySQL vs Oracle Idź do strony 1, 2  Następny
Napisz nowy temat  Odpowiedz do tematu
Skocz do: