Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Partycjonowanie MySQL:dlaczego nie zajmuje odpowiedniej partycji

Schemat partycjonowania HASH oznacza, że ​​MySQL tłumaczy dowolną wartość liczbową na własną wartość skrótu. Zdefiniowałeś 366 partycji. Jak myślisz, co by się stało, gdyby Twoje zapytanie było:

WYJAŚNIJ PARTYCJE WYBIERZ * Z temp gdzie PartitionID =400?

Twój identyfikator partycji nie może w tym przypadku oznaczać rzeczywistego identyfikatora/nazwy partycji, ponieważ nie ma partycji 400.

Teraz, między nami dwoje, możesz być zainteresowany, aby dowiedzieć się, że funkcja HASHing MySQL jest prostym modułem. Zatem 0 mapuje na partycję p0, 1 mapuje na partycję p1, a 400 mapuje na partycję 34 (==400-366).

Ogólnie rzecz biorąc, nie powinieneś być zbyt zainteresowany identyfikacją używanej partycji. Powinieneś być bardziej zainteresowany, aby wiedzieć, że istnieje dobra równowaga partycji.

Jeśli równowaga nie wydaje Ci się odpowiednia, możesz rozważyć użycie schematu partycjonowania KEY, w którym algorytm mieszający opiera się na funkcji sumy kontrolnej, co oznacza, że ​​wartości są bardziej „losowo” rozłożone w porównaniu ze schematem partycjonowania modułu HASH.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć dane z ostatniego tygodnia w MySQL

  2. com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException:nie można wywołać wycofania, gdy autocommit=true

  3. JDBC z MySQL jest naprawdę wolny, nie wiem dlaczego

  4. Jak możemy odróżnić LEFT OUTER JOIN od Left Join?

  5. Pobieranie ostatniego rekordu w każdej grupie - MySQL