![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 168 Pomógł: 1 Dołączył: 19.11.2005 Ostrzeżenie: (0%)
|
Witam,
Przymierzam się do stworzenia kolejnej strony - mini portalu. Oczywiście całość ma być oparta o bazę MySQL. W związku z tym moje pytanie. Jaka jest sensowna, rozwijana klasa do obsługi bazy danych MySQL? Czego warto użyć? Ten post edytował MalyKazio 25.06.2011, 17:51:47 |
|
|
|
Post
#2
|
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
Cytat Puszkuje klasy do obsługi bazy danych W sensie, że "konserwuję"? (IMG:style_emoticons/default/brzydal.gif) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%)
|
ja wykorzystuje własną implementacje mysqli wrzuconej we wzorzec singleton + pare dodatków do cache i tworzenia zapytań...
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Nie wymyślaj koła na nowo, jest PDO
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
a PDO ma cache ? P
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
ma
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Zapytania preinterpretowane są cacheowane po stronie serwera:
Cytat Calling PDO::prepare() and PDOStatement::execute() for statements that will be issued multiple times with different parameter values optimizes the performance of your application by allowing the driver to negotiate client and/or server side caching of the query plan and meta information, and helps to prevent SQL injection attacks by eliminating the need to manually quote the parameters. [za:] http://php.net/manual/en/pdo.prepare.php Oczywiście nie jest to cacheowanie poza warstwą serwera, ale w ramach tejże, jednak należy pamiętać, że mechanizm ten funkcjonuje dopiero od wersji MySQL 5.1.17 |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Zacznijmy może od tego, że cache'owane może być tutaj 15 rzeczy na 20 sposobów każde, więc darujcie sobie tą dyskusję albo określcie dokładnie o cache czego chodzi.
Jeżeli chodzi o samo połączenie to PDO - raczej nic innego nie jest warte rozważania. Jeżeli zaś chodzi o jakieś bardziej przyjazne i rozbudowane API dla zapytań to wartym rozpatrzenia wydaje się być Doctrine DBAL. |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 3 Dołączył: 17.09.2011 Ostrzeżenie: (0%)
|
1. Prepared statments z PDO to nie cache
2. Czasem lepiej napisać coś lekkiego i nie trzeba do prostego portalu używać takiego kombajnu. Cytat Using prepared SELECT statements on a MySQL database prior to MySQL 5.1.17 can lead to SERIOUS performance degradation. Trzeba czytać ze zrozumieniem. Tutaj jest napisane, że do wersji 5.1.17 perpared statements z SELECT może powodować bardzo duży spadek wydajności. Tutaj nie ma nic o jej poprawie przy użyciu PS. Co więcej cache dla "zwykłych" kwerend jest używane ZAWSZE (także poniżej 5.1.17). Nawet jeśli masz SQL > 5.1.17 i używasz PS to marginalnie szybsze może to być jedynie wtedy kiedy raz przygotujesz kwerendę którą potem wykonasz wiele razy. Z naciskiem na _może_, bo to nic pewnego. Jeśli przygotujesz kwerendę którą zaraz później raz wykonujesz PS jest WOLNIEJSZE, niż gdybyś tę samą kwerendę po prostu wysłał do serwera. Moim zdaniem gra nie warta świeczki. ORM-y oczywiście są warte zainteresowania, jeśli akurat lubisz tłumaczyć świetny model SQL na model obiektowy który się do reprezentacji danych z tabel kompletnie nie nadaje i odpowiada ci prędkość żółwia. Moim zdaniem - przejściowa moda, żadnej bardziej skomplikowanej kwerendy w ORM-ie nie zrobisz i będziesz i tak musiał w końcu poznać SQL. Że o optymalizacji nie wspomnę. Ten post edytował xdev 17.09.2011, 20:02:28 |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%)
|
Ja polecam EZ SQL - używam z powodzeniem od dawna:
http://justinvincent.com/ezsql |
|
|
|
![]() ![]() |
|
Aktualny czas: 11.11.2025 - 18:30 |