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

Partycja tabeli Mysql na podstawie ostatniej cyfry kolumny/id

Zastanawiałem się, czy podczas tworzenia partycji dozwolona jest funkcja mod, zrobiłem to za pomocą

CREATE TABLE ti (id INT, amount DECIMAL(7,2))
ENGINE=INNODB
PARTITION BY HASH( MOD(id,10) )
PARTITIONS 10;

to utworzyło 10 partycji, z których każda wchodzi do swojej partycji, kończąc na tym samym numerze, co ostatnia cyfra identyfikatora

Dodałem kilka wierszy

    INSERT INTO ti VALUES (23123,343.22);
    INSERT INTO ti VALUES (23123,343.22);
    INSERT INTO ti VALUES (23144,343.22);
    INSERT INTO ti VALUES (23114,343.22);
    INSERT INTO ti VALUES (23124,343.22);
    INSERT INTO ti VALUES (23166,343.22);
    INSERT INTO ti VALUES (23116,343.22);
    INSERT INTO ti VALUES (23112,343.22);
    INSERT INTO ti VALUES (23199,343.22);

następnie przetestowałem to

 SELECT
  partition_name part,
  partition_expression expr,
  partition_description descr,
  table_rows
FROM
  INFORMATION_SCHEMA.partitions
WHERE
  TABLE_SCHEMA = SCHEMA()
  AND TABLE_NAME='ti';

WYJŚCIE:

part    expr    descr   table_rows
p0   MOD(id,10) \N  0
p1   MOD(id,10) \N  0
p2   MOD(id,10) \N  1
p3   MOD(id,10) \N  2
p4   MOD(id,10) \N  3
p5   MOD(id,10) \N  0
p6   MOD(id,10) \N  2
p7   MOD(id,10) \N  0
p8   MOD(id,10) \N  0
p9   MOD(id,10) \N  1

dokładnie to, czego chciałem, dzięki za wskazanie właściwego linku Incognito, ale twoja odpowiedź była błędna, być może źle to zrozumiałeś



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Modyfikacje przepływu pracy WordPress

  2. MySQL - Jak uzyskać listę wartości w Tabeli A, które nie istnieją w Tabeli B?

  3. Brak odpowiedzi od PHP / MySQL NuSOAP

  4. Wyzwalacz MySQL pobiera aktualne zapytanie, które spowodowało uruchomienie wyzwalacza

  5. Laravel 5 - Elequent GROUP BY nie działa