Wir haben eine Tabelle zum Tracking von Suchwörtern, d.h. den Bestandteilen einer Suchphrase:

Um jetzt aus einer um Dropwords und bösartigen/dämlichen Blödsinn (nicht druckbare Zeichen, Deppen-Apostrophe, ggf. Satzzeichen) bereinigten Phrase die einzelnen Keywords einzufügen, kann man die Phrase natürlich im Applikationscode an den Leerzeichen splitten und dann in einem Loop die einzelnen Wörter einfügen. Aus einer Suchphrase von drei Wörtern werden dann drei einzelne INSERT-Statements.

Es geht aber auch eleganter.
Weiterlesen

Es gab SQL vor Window Functions und es gibt SQL nach Window Functions

… so fängt ein lesenwertes Tutorial für dieses Thema an, das beim Einstieg erst einmal recht sperrig ist.

Wenn man sich da aber etwas durchwühlt, dann merkt man wie genial das ganze ist – CTE+Window-Function=Pr0n. Bis man aber dahin kommt, braucht’s einfach erst einmal ein bisschen mehr Brainfuck als im Alltag oft möglich ist. Darum will ich hier mal den allersimpelsten Fall zeigen, weitermachen kann man dann eben z.B. mit dem obengenannten Artikel.

Ich baue eine Suchfunktion für unsere Produktdatenbank. Schnell muss es sein, Prefix-Suche muss unterstützt werden, es wird natürlich paginiert. Also brauche ich nicht nur die aktuell dargestellten Produkte, sondern auch immer eine Gesamtzahl.
Weiterlesen

CTE, Custom-Aggregate und Window-Funktionen – in MongoDB muss vielen zu Fuß gebaut werden, was in PostgreSQL einfacher und verständlicher verfügbar ist.

Aggregating NBA data, PostgreSQL vs MongoDB

Andererseits: Äpfel und Birnen – manchmal ist eine InMemory-NoSQL-Datenbank doch das bessere Tool für den Job. Ich fühle mich allerdings nach wie vor in SQL und pl/pgSQL, pl/pgPERL etc. wesentlich wohler als in der Map/Reduce-Aggregat-Pipe-Welt von Mongo – vor allem wenn ich nach Monaten etwas am Code anpassen muss.

„Alex! Auf Google Plus wird in der Linkvorschau der Titel nicht mehr angezeigt!!!11!!Elf“
(Aus dem grönländischen Bestseller: Sätze, die man zum Montag nicht hören will.)

Hat Google Plus wieder etwas umgebaut? Ist das nur im Firmenprofil kaputt? Nee, im privaten geht es auch nicht. Sind andere Angebote betroffen? Nö. Betrifft das nur Artikelseiten? Oh, ja! Videoseiten gehen.

Ein Blick in die Google Plus Timeline – wann ging es denn das letzte Mal? Hm, ok, an dem Tag X. Was haben wir denn da geändert? Ein Blick in GIT. Und siehe da: danach bauten wir das itemprop organization eingebaut.

Sollte es etwa daran liegen? Wir werfen es aus dem Artikel-Template und siehe da: Es ging!

Erkenntnis: Google Plus wertet für die Linkvorschau das itemprop-Attribut organization höher als sämtlichen meta-title-Tags.

Mag vielleicht trivial sein, aber ich bin gestern wieder über einen relativ häufigen Optimierungsfall gestolpert, der zumindest in der Entwicklungsphase nicht immer so einfach zu Tage tritt:

Das Query läuft ca. 1,3 Sekunden – nicht gut. Was passiert hier?
Weiterlesen