Benutzer-Werkzeuge

Webseiten-Werkzeuge


partitionierte_tabellen_mit_mysql

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
partitionierte_tabellen_mit_mysql [2022-04-26 12:26:07] – [PARTITION BY RANGE] manfredpartitionierte_tabellen_mit_mysql [2024-03-28 14:07:29] (aktuell) – [PARTITION BY HASH] manfred
Zeile 84: Zeile 84:
  
 ==== PARTITION BY HASH ==== ==== PARTITION BY HASH ====
 +
 +  * [[https://dev.mysql.com/doc/refman/8.0/en/partitioning-hash.html]]
  
 Um eine Tabelle nach HASH zu partitionieren, muß die ''HASH-Spalte'' von einem INT-Type sein! Um eine Tabelle nach HASH zu partitionieren, muß die ''HASH-Spalte'' von einem INT-Type sein!
 +
 +//Modulus-''HASH'' soll die Daten über die Partitionen gleichmäßiger verteilen.//
  
 Man sollte die Anzahl der Partitionen als einen Wert von ''2^x'' (2, 4, 8, 16, ...) wählen, weil der HASH-Algorythmus (Binärbaum) sich dann am besten ausbalancieren kann. Man sollte die Anzahl der Partitionen als einen Wert von ''2^x'' (2, 4, 8, 16, ...) wählen, weil der HASH-Algorythmus (Binärbaum) sich dann am besten ausbalancieren kann.
-  ALTER TABLE `datenbank`.`tabelle+<file SQL Tabelle_partitionieren_-_HASH.sql> 
-  PARTITION BY HASH (id) +ALTER TABLE `promotion_tracking_backend`.`CrossSiteTrackingData
-      PARTITIONS 16;+PARTITION BY HASH (id) 
 +    PARTITIONS 16; 
 +</file> 
 + 
 +  SELECT TABLE_SCHEMA,TABLE_NAME,PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE PARTITION_DESCRIPTION IS NOT NULL AND TABLE_SCHEMA='promotion_tracking_backend' AND TABLE_NAME='CrossSiteTrackingData'; 
 + 
 + 
 +==== PARTITION BY LINEAR HASH ==== 
 + 
 +  * [[https://dev.mysql.com/doc/refman/8.0/en/partitioning-linear-hash.html]] 
 + 
 +**LINEAR HASH Partitioning:** 
 +MySQL unterstützt auch lineares Hashing, das sich von regulärem Hashing darin unterscheidet, dass lineares Hashing einen linearen Potenzen-von-Zwei-Algorithmus verwendet, während reguläres Hashing den Modulus des Werts der Hash-Funktion verwendet.
  
-  SELECT PARTITION_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE PARTITION_DESCRIPTION IS NOT NULL AND TABLE_SCHEMA='datenbankAND TABLE_NAME='tabelle';+//''LINEAR HASH'' soll beim INSERT und DELETE sowie dem verändern der Partitionsanzahl etwas schneller sein als der Modulus-''HASH''.//
  
 +<code sql>
 +ALTER TABLE `promotion_tracking_backend`.`CrossSiteTrackingData`
 +PARTITION BY LINEAR HASH (id)
 +    PARTITIONS 16;
 +</code>
  
 ===== partitionierte Tabelle neu anlegen ===== ===== partitionierte Tabelle neu anlegen =====
/home/http/wiki/data/attic/partitionierte_tabellen_mit_mysql.1650975967.txt · Zuletzt geändert: von manfred