sql >> Database >  >> RDS >> Mysql

Mysql-tabelpartitie gebaseerd op het laatste cijfer van een kolom/id

Ik vroeg me af of er een mod-functie was toegestaan ​​tijdens het maken van een partitie, ik deed het met

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

hierdoor werden 10 partities gemaakt waarbij elke id in zijn partitie eindigde met hetzelfde nummer als het laatste cijfer van de id

Ik heb een paar rijen toegevoegd

    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);

vervolgens getest

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

UITGANG:

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

precies wat ik wilde, bedankt voor het wijzen op de juiste link Incognito, maar je antwoord was verkeerd, misschien heb je het verkeerd begrepen



  1. jOOQ invoegen in .. waar niet bestaat voor Postgres

  2. Spring boot JPA insert in TABLE met hoofdletters naam met Hibernate

  3. Aanbevolen Intel-processors voor SQL Server 2014-workloads

  4. MySQL meerdere joins naar dezelfde tabel