sql >> Databasteknik >  >> RDS >> Mysql

Mysql-tabellpartition baserad på sista siffran i en kolumn/id

Jag undrade om det var en mod-funktion tillåten när jag skapade en partition, jag gjorde det med

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

detta skapade 10 partitioner varje id går i sin partition som slutar med samma nummer som den sista siffran i id:t

Jag lade till några rader

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

sedan testade det

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

UTGÅNG:

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

precis vad jag ville, tack för att du pekade på rätt länk Incognito, men ditt svar var fel, du kanske missförstod det



  1. Gå med i operationsduplicering

  2. Hur kan jag lyssna på postgresql-databas med SignalR Core i .net-kärnprojekt?

  3. Python cx_Oracle SQL med bindsträngsvariabel

  4. Anslut HP-UX Itanium till SQL Server