PythonQ 240-8XX Manual de usuario Pagina 483

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 482
462 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
Wenn Sie bin¨are Zahlschl¨ussel komprimieren, benutzt MySQL die Pr¨afix-
Komprimierung. Das bedeutet, dass Sie nur dann einen Nutzen daraus ziehen,
wenn Sie Zahlen haben, die sich oft wiederholen. Pr¨afix-Kompression bedeutet,
das jeder Schl¨ussel ein zus¨atzliches Byte ben¨otigt, um darzustellen, wie viele Bytes
des vorherigen Schl¨ussels f¨ur den achsten Schl¨ussel dieselben sind (beachten Sie,
dass der Zeiger auf die Zeile in der Reihenfolge ’hohes Byte zuerst’ direkt nach dem
Schl¨ussel gespeichert wird, um die Kompression zu verbessern). Das heißt, wenn Sie
viele gleiche Schl¨ussel auf zwei Zeilen hintereinander haben, werden alle folgenden
’gleichen’ Schl¨ussel ¨ublicherweise nur 2 Bytes in Anspruch nehmen (inklusive dem
Zeiger auf die Zeile). Vergleichen Sie das mit dem Normalfall, bei dem die folgenden
Schl¨ussel speicher platz fuer schl¨ussel + zeiger groesse beanspruchen ublicherweise
4). Auf der anderen Seite verlieren Sie 1 Byte pro Schl¨ussel, wenn alle Schl¨ussel ollig
unterschiedlich sind, falls der Schl¨ussel kein Schl¨ussel ist, der NULL-Werte haben kann
(in diesem Fall wird die komprimierte Schl¨ussell¨ange, die im selben Byte gespeichert
ist, benutzt, um zu kennzeichnen, ob ein Schl¨ussel NULL ist).
Wenn Sie ein SELECT nach dem CREATE-Statement angeben, erzeugt MySQL neue Felder
f¨ur alle Elemente im SELECT. Beispiel:
mysql> CREATE TABLE test (a int not null auto_increment,
primary key (a), key(b))
TYPE=MyISAM SELECT b,c from test2;
Das erzeugt eine MyISAM-Tabelle mit drei Spalten a, b und c. Beachten Sie, dass die
Spalten des SELECT-Statements an die rechte Seite der Tabelle angeh¨angt werden, nicht
¨uberlapp end. Nehmen wir folgendes Beispiel:
mysql> select * from foo;
+---+
| n |
+---+
| 1 |
+---+
mysql> create table bar (m int) select n from foo;
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from bar;
+------+---+
| m | n |
+------+---+
| NULL | 1 |
+------+---+
1 row in set (0.00 sec)
F¨ur jede Zeile in Tabelle foo wird eine Zeile in bar mit den Werten von foo und
Vorgabewerten f¨ur die neuen Spalten eingef¨ugt.
CREATE TABLE ... SELECT erzeugt nicht automatisch irgend welche Indexe. Das wird
absichtlich gemacht, um den Befehl so flexibel wie oglich zu machen. Wenn Sie Indexe
in der erzeugten Tabelle haben wollen, geben Sie diese vor dem SELECT-Statement an:
Vista de pagina 482
1 2 ... 478 479 480 481 482 483 484 485 486 487 488 ... 767 768

Comentarios a estos manuales

Sin comentarios