Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #3711

Re: PHP 7 / Ubuntu: utf8_encode() fehlt!?

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>

Show all headers | View raw



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 | NextPrevious in thread | Next in thread | Find similar


Thread

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