Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #3711
| From | Torsten Zuehlsdorff <foo@meisterderspiele.de> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? |
| Date | 2016-03-03 08:41 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <nb9p81$bf9$1@dont-email.me> (permalink) |
| References | (5 earlier) <nb3ujd$oru$1@dont-email.me> <djlio8F7t1qU1@mid.individual.net> <djm3ooFcfpiU1@mid.individual.net> <nb7537$qj$2@dont-email.me> <11t56d72f6ci3598n3e8%sfroehli@Froehlich.Priv.at> |
On 02.03.2016 19:29, Stefan Froehlich wrote: > On Wed, 02 Mar 2016 08:43:46 Torsten Zuehlsdorff wrote: >>>>> Wenn du mal Performance oder eine der vielen fehlenden >>>>> Funktionen des SQL-Standards benötigst: unbedingt [PDO statt >>>>> mysqli]. > >>>> Kannst Du mal einige der "vielen fehlenden Funktionen des >>>> SQL-Standards" aufzählen? Gibt's irgendwo 'ne Übersicht? Ich >>>> arbeite schon ein paar Jahre mit MySQL und habe bis jetzt nichts >>>> vermisst. > >>> Naja, gelegentlich könnte man schon die eine oder andere Funktion >>> brauchen, aber: Inwiefern hilft dabei die Verwendung von PDO weiter? > >> Eher indirekt. Würde er PDO verwenden, kann er später ohne großen >> Aufwand die zusätzlichen Funktionen anderer Datenbanksysteme >> verwenden. Im jetzigen Zustand muß er davor noch darüber >> nachdenken, ob sich der Migrationsaufwand lohnt. > > Hängt davon ab, wie geschickt oder ungeschickt man dabei vorgegangen > ist. Ich habe (die Klassen stammen immer noch aus einer Zeit vor > PDO) für die Datenbankzugriffe eine eigene Klasse geschrieben, in > der anno dazumal mysql_*() aufgerufen wurde. Die Änderung auf > zunächst msqli_*() und später pg_*() war nahezu trivial. Nahezu. Aber das ist eine Frage des Kontextes. Bei einigen Kunden könnte ich die Änderungen wie du beschrieben hast quasi durch Suchen und Ersetzen durchführen und alles wäre super. Ich habe allerdings auch Kunden, da würde eine solche Änderung monatelanges Testen nach sich ziehen, weil sie *sehr* sicher sein wollen, dass Datenbank *und* Applikation danach noch funktionieren. Wird direkt PDO verwendet, erspart man sich die Hälfte des Aufwandes, da die Applikation unmodifiziert ist. Vorausgesetzt natürlich man verwendet kein ORM oder andere Schandtaten. Daher hängt es eben immer von den Umständen ab. > Aber selbst ohne diese Zentralisierung sollte das eigentlich recht > schnell erledigt sein. Die Hauptarbeit entsteht überall dort, wo > man SQL verwendet, das nicht in alter und neuer Datenbank > gleichermaßen gültig ist. *Das* verursacht Migrationsaufwand. FULL ACK. >>> Und auch bezüglich der Performance bin ich eigentlich eher >>> skeptisch. > >> Ich nicht. Das ist mittlerweile mein Hauptargument beim Wechsel, >> [...] > >> Die durchoptimierte Queries mit den Indizies an den richtigen >> Stellen hat bei gerade mal 200 Mio Rows etwa 18 Sekunden bis zum >> Ergebnis benötigt. Bei 10 GB RAM und SSDs. >> Nach der Portierung der Struktur (nahezu 1:1 - es gibt kein >> unsigned/autoincrement in PostgreSQL (oder im SQL Standard)) sind >> die identischen (!) Queries auf 0.2 Sekunden [sic!] beschleunigt. > > Das hat nun aber mit PDO nichts zu tun, sondern mit den beteiligten > Datenbanken. *So* glaube ich Dir das natürich sofort. Tatsächlich meine ich die beteiligten Datenbanken. Das habe ich nicht klar genug herausgehoben, entschuldige bitte. PDO ermöglicht (unter Wahrung des SQL-Standards und/oder der Verwendung von Datenbanken mit den selben benötigen Funktionsumfang) einen schnellen Wechsel der Technik und damit erst die Evaluierung der Geschwindigkeit der unterschiedlichen Datenbanksysteme. Außerdem bezog sich die Geschwindigkeitsaussage nicht nur auf die Datenbanksysteme sondern auch auf die Möglichkeiten des SQL-Standards. Ein sortierter Index (gibt es in MySQL), ein partieller oder funktioneller Index sind nunmal schneller als einer oder eben kein Index (oder der Prämisse der korrekten Setzung und Nutzung). Selbiges gilt beispielsweise für LATERAL-Queries, welche einfach schon durch die Infrastruktur schneller sind als ein applikationsseitiges foreach. >> Nach meiner Optimierung war das Ergebnis in 6 bis 20 Millisekunden >> da - je nach Query. > > Ich verwende relativ viel Energie darauf, nichts zu tun, was nicht > auf Fast Allen[TM] Datenbanksystemen laufen würde. Das hat sich > schon bezahlt gemacht, als ein Kunde partout darauf bestanden hat, > SQL-Server zu verwenden. Ok, es läuft dort nun zwar alles > schnarchlangsam, aber immerin, es läuft. Ich vermeide das. Allerdings ist das wohl den Umfeldern geschuldet. Ich arbeite mit großen Datenmengen. Einzelne Tabellen mit 100 Mio+ Datensätzen sind bei mir eher klein. Es ist schlicht keine Option auf etwas schnarchlangsames zu warten. Während man zwischen einer Antwort im Sekundenbereich und einigen Stunden vielleicht noch diskutieren kann, gibt es viele Konstellationen, in denen die Antwort plötzlich Tage benötigt. Und da sind wir weder bei den Lizenskosten, der größeren nötigen Hardware oder den erheblich höheren administrativen Pflegeaufwand gewesen. > Und wenn Du die zusätzliche Funktionalität von Postgres (die es > zweifellos gibt) als Argument bringst, dann darfst Du nicht auf der > anderen Seite den geringen Migrationsaufwand durch PDO hervorheben, > denn genau dadurch wird der zunichte gemacht. Nein. Denn ich habe als Funktionalität explizit nur Dinge benannt, die auch im SQL-Standard zu finden sind. Gut, es gibt so einige rühmliche Ausnahmen, die bis heute nicht Funktionalität aus dem 1999er Standard implementiert haben. Aber es gibt eine ganze Reihe von Datenbanken zur Auswahl, natürlich kann vorher geprüft werden, welche der benötigten Features unterstützt werden und dann kann bei PDO Verwendung mit geringen Migrationsaufwand gewechselt werden. Natürlich gibt es auch bei PostgreSQL Funktionalität die nicht im Standard steht. Aber hier verhält sich wie bei allem anderen. Die Verwendung ist optional und kann je nach Kontext sinnvoll sein oder auch nicht. Der Migrationsaufwand wird dadurch aber erhöht. Aber nochmal: deswegen habe ich nur Funktionen des Standards aufgezählt. Gruß, Torsten
Back to de.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar
PHP 7 / Ubuntu: utf8_encode() fehlt!? Ralph Stahl <post@rstahl.de> - 2016-02-29 17:41 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Ralph Stahl <post@rstahl.de> - 2016-02-29 18:02 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-02-29 18:04 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Ulf Kadner <ulfikado@googlemail.com> - 2016-02-29 21:59 -0800
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Ralph Stahl <post@rstahl.de> - 2016-03-01 09:35 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-03-01 10:16 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Ulf Kadner <ulfikado@googlemail.com> - 2016-03-01 01:29 -0800
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Claus Reibenstein <4spamersonly@kabelmail.de> - 2016-03-01 10:50 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Markus Grob <snoopy@ilnet.ch> - 2016-03-01 10:58 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-01 12:34 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Claus Reibenstein <4spamersonly@kabelmail.de> - 2016-03-01 14:11 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2016-03-01 18:02 +0000
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-02 08:43 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2016-03-02 18:29 +0000
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-03 08:41 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Ralph Stahl <post@rstahl.de> - 2016-03-01 19:26 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2016-03-01 23:43 +0000
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Arno Welzel <usenet@arnowelzel.de> - 2016-03-02 07:20 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Ralph Stahl <post@rstahl.de> - 2016-03-02 09:31 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-02 08:33 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2016-03-02 18:30 +0000
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-03 08:26 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2016-03-03 21:38 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-04 11:02 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2016-03-04 14:26 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-08 10:10 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2016-03-08 19:32 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-09 08:30 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Markus Grob <snoopy@ilnet.ch> - 2016-03-09 10:00 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-15 08:42 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2016-03-15 19:43 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-16 09:42 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Arno Welzel <usenet@arnowelzel.de> - 2016-03-16 10:16 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Markus Grob <snoopy@ilnet.ch> - 2016-03-16 09:44 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-21 09:01 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Markus Grob <snoopy@ilnet.ch> - 2016-03-26 02:11 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-29 08:06 +0200
OT: Deppenleerzeichen (was: Re: PHP 7 / Ubuntu: utf8_encode() fehlt!?) Arno Welzel <usenet@arnowelzel.de> - 2016-03-16 10:20 +0100
Re: OT: Deppenleerzeichen Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-16 11:18 +0100
Re: OT: Deppenleerzeichen Arno Welzel <usenet@arnowelzel.de> - 2016-03-16 14:15 +0100
Re: OT: Deppenleerzeichen Claus Reibenstein <4spamersonly@kabelmail.de> - 2016-03-16 12:05 +0100
Re: OT: Deppenleerzeichen Arno Welzel <usenet@arnowelzel.de> - 2016-03-16 14:12 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2016-03-04 11:25 +0000
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2016-03-03 21:23 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-04 10:46 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-04 10:48 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2016-03-04 11:23 +0000
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Torsten Zuehlsdorff <foo@meisterderspiele.de> - 2016-03-08 10:10 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2016-03-09 12:50 +0000
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Ralph Stahl <post@rstahl.de> - 2016-03-01 19:21 +0100
Re: PHP 7 / Ubuntu: utf8_encode() fehlt!? Ralph Stahl <post@rstahl.de> - 2016-03-04 09:51 +0100
csiph-web