Revo: urldecode für mysql

Beitrag lesen

Hi!

die spalte einer großen tabelle muss sehr schnell urldecodriert werden. der einsatz von z.b. php um das zu tun würde einen riesigen performance verlust bedeuten. es ist auch nicht möglich, beim einfügen der daten das alles schon zu erledigen.

Lesetipp zu meiner Frage: http://aktuell.de.selfhtml.org/artikel/review/kontextwechsel/
kontextwechsel möchte ich wie gesagt aus performance gründen vermeiden.

Das Problem ist, dass der Kontextwechsel bereits irgendwann vor dem Einlesen stattgefunden hat und deiner Schilderung gemäß offensichtlich nicht angemessen berücksichtigt wurde. Kontextwechsel sind normalerweise "einfach da", weil zwei Systeme miteinander Daten austauschen, sie sind nicht von Willen des Programmierers abhängig. Wenn du die Ursache beseitigen willst, setz an der Stelle an, an der die Daten in den URL-Kontext gebracht wurden, obwohl er (vermutlich) nicht vorlag, beziehungsweise da, wo sie bei der Übernahme nicht aus selbigem befreit wurden.

Die TextDatei stammt von einem Server auf den ich keinen Zugriff habe, der über das lesen hinausgeht.

wie würde ich so eine stored routine implementieren?

Was sind deine konkreten Fragen dazu? Die Syntax zu Stored Procedures ist nicht mal eben schnell hier erläutert.
Die generelle Systax ist im Kapitel Stored Programs and Views beschrieben, wobei dich speziell eine Stored Function interessieren wird. Du benötigst sicher dazu die MySQL Compound-Statement Syntax, die im Kapitel SQL Statement Syntax angesiedelt wird. Außerdem benötigst du noch Functions and Operators, speziell die String Functions (besonders UNHEX() und CHAR() können dir nützlich sein). Wenn das Ganze dann auch noch mit UTF-8 umgehen können muss, wird es etwas aufwendiger.

Die Syntax ist mir bekannt - am liebsten wäre es mir, und deshalb frage ich, wenn schon irgendjemand vorher das selbe implementiert hat.
Aber mit dem anderen Antwortpost wurde mir das tatsächlich schon beantwortet: Und noch dazu ist die Implementierung als UDF wahrscheinlich wensentlich effizienter ...

Lo!

Lg
Revo