MySQL: temporäre Tabellen

Veröffentlicht am 23.6.2009, 23:57 Uhr

Große Queries, die sowieso per ‘Using temporary’ anzeigen, dass im Hintergrund eine temporäre Tabelle erstellt wird, lassen sich oft wunderbar zwei- oder dreiteilen indem man erst eine temporäre Tabelle erstellt und dort nun dann die Abfragen ausführt. Besonders effektiv ist das, wenn Teil 1 des Queries die Anzahl der zu betrachtenden Zeilen stark einschränkt, Teil 2 dann jedoch nochmal heftig sortieren muss.

MySQL: Delete a subset in a table quickly

Veröffentlicht am 21.6.2009, 14:04 Uhr

Heute mal wieder über einen netten MySQL-Hack gestolpert:

The trick is, that INNER JOIN will ‘shrink’ the LargeTable down to the size of the TemporarySmallTable and the delete will operate on that smaller set only, since USING will reference to the joined table.

http://blog.mkoebele.de/2008/07/mysql-delete-subset-in-table-quickly.html

http://dev.mysql.com/doc/refman/5.0/en/delete.html#c9536

Mehr davon bitte…

MySQL: The table ‘foo’ is full

Veröffentlicht am 31.3.2008, 14:14 Uhr

Ich muss zugeben, ich war erstmal ziemlich platt. Aber, es gibt ja zum Glück Erklärungen und (mutmaßliche) Lösungen:

http://dev.mysql.com/doc/refman/5.0/en/full-table.html

http://dev.mysql.com/doc/refman/5.1/de/full-table.html

http://jeremy.zawodny.com/blog/archives/000796.html

Das von Jeremy Zawodny vorgeschlagene

alter table foo max_rows = 200000000000 avg_row_length = 50;

funktioniert auch wunderbar. Nun passen nochmal ein paar Gigabyte rein.

MySQL: INSERT … ON DUPLICATE KEY UPDATE

Veröffentlicht am 23.8.2007, 13:38 Uhr

Ich kann gar nicht oft genug darauf hinweisen:

INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

Sinn der Sache:
Wenn ein INSERT einen doppelten Wert für ein UNIQUE- oder PRIMARY KEY-Feld erzeugen würde wird das UPDATE ausgeführt.

http://dev.mysql.com/doc/refman/4.1/en/insert-on-duplicate.html

http://www.mysqlperformanceblog.com/2006/05/29/insert-on-duplicate-key-update-and-summary-counters/

Vielleicht wird man dann irgendwann diese umständlichen if(mysql_insert_id() == 0) oder mysql_affected_rows-Konstruktionen los.

Know your enemy: XSS, SQL Injection etc.

Veröffentlicht am 27.2.2007, 01:51 Uhr

Auch wenn Betamode nun wohl absolut zum Linkblog verkommt:

http://www.honeynet.org/papers/webapp/

Automatisierte MySQL-Backups auf mehreren Servern: phpMyBackupPro

Veröffentlicht am 25.2.2007, 16:11 Uhr

http://www.phpmybackuppro.net/

MySQL-Front -> HeidiSQL

Veröffentlicht am 14.11.2006, 21:46 Uhr

Altes unter neuem Namen:

HeidiSQL is a front-end interface for the popular MySQL database. It allows you to manage and administer your databases from an easy to use Windows interface, rather than via the command line.

MySQL: Zeichensatzärger

Veröffentlicht am 25.8.2006, 16:21 Uhr

Im Juli habe ich mit meinem Beitrag latin1_german1_ci oder latin1_german2_ci? kurz das Thema Kollationen angeschnitten. Kris Köhntopp hat den ganzen Zeichensatzkram etwas ausführlicher erklärt:

http://blog.koehntopp.de/archives/1360-Zeichensatzaerger.html

Häufige Fehlerquelle bei mysql_real_escape_string()

Veröffentlicht am 19.7.2006, 23:16 Uhr

mysql_real_escape_string() sollte ja auf jeden String angewendet werden, der in die Datenbank eingetragen wird. Mehrmals passierte es mir nun schon, dass ich auf neuen Servern nach der Ausführung eines Scriptes den Backslash auch in der Datenbank wiederfand. Grund:

Falls Sie magic_quotes_gpc aktiviert haben und mit Daten aus Benutzereingaben arbeiten, müssen Sie vorher Ihre Daten mit stripslashes() behandeln.

So einfach. Muss es mir nur merken. Und den Apache nach der Änderung neu starten.

latin1_german1_ci oder latin1_german2_ci?

Veröffentlicht am 6.7.2006, 17:42 Uhr

Seit Version 2.6.x unterstützt phpMyAdmin die sogenannten Kollationen. Kollationen sind Zeichensätze und Sortierreihenfolgen nach denen zum Beispiel ORDER BY – Klauseln die Daten einer Datenbank sortieren. Es gibt 2 deutsche Zeichensätze, german1_ci und german2_ci. Der Unterschied ist im MySQL-Referenzhandbuch ganz gut dargestellt:

Die Sortierfolgen latin1_german1_ci und latin1_german2_ci basieren auf den DIN-1- und DIN-2-Normen. DIN ist das Deutsche Institut für Normung, also die deutsche Standardisierungsorganisation. DIN-1 heißt „Wörterbuchsortierung“, DIN-2 „Telefonbuchsortierung“.

  • Regeln für latin1_german1_ci (Wörterbuchsortierung):
    Ä = A
    Ö = O
    Ü = U
    ß = s
  • Regeln für latin1_german2_ci (Telefonbuchsortierung):
    Ä = AE
    Ö = OE
    Ü = UE

Googlebot visited this page Sonntag, 26. Oktober 2014, 06:21:44
24 queries. 0,877 seconds.