sql >> Databáze >  >> RDS >> Mysql

MySQL Partitioning:proč nebere vhodný oddíl

Schéma rozdělení HASH znamená, že MySQL převede vaši libovolnou číselnou hodnotu na vlastní hodnotu hash. Definovali jste 366 oddílů. Co si myslíte, že by se stalo, kdyby váš dotaz byl:

EXPLAIN PARTITIONS SELECT * FROM temp kde ID oddílu =400?

Vaše ID oddílu nemůže v tomto případě znamenat skutečné ID/název oddílu, protože neexistuje žádný oddíl 400.

Nyní, jen mezi námi dvěma, by vás mohlo zajímat, že funkce HASHing MySQL je jednoduchý modul. Tedy 0 mapuje na oddíl p0, 1 mapuje na oddíl p1 a 400 mapuje na oddíl 34 (==400-366).

Obecně řečeno byste se neměli příliš zajímat o identifikaci konkrétního používaného oddílu. Měli byste se více zajímat o to, že existuje dobrá rovnováha mezi oddíly.

Pokud se vám nezdá zůstatek v pořádku, můžete zvážit použití rozdělovacího schématu KEY, kde je algoritmus hašování založen na funkci kontrolního součtu, což znamená, že hodnoty jsou „náhodněji“ rozloženy ve srovnání se schématem rozdělování pomocí modulu HASH.




  1. Zápis SQL dotazu na položku SELECT z následující tabulky

  2. Jak funguje funkce UNHEX() v MySQL

  3. Jak obnovit MySQL Galera Cluster z asynchronního Slave

  4. Proč MySQL automaticky převádí řetězce na čísla?