Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql дял на таблица въз основа на последната цифра на колона/id

Чудех се дали има разрешена мод функция при създаване на дял, направих го с помощта на

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

това създаде 10 дяла, всеки идентификатор отива в своя дял, завършващ със същия номер като последната цифра на идентификатора

Добавих няколко реда

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

след това го тествах

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

ИЗХОД:

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

точно това, което исках, благодаря, че посочихте правилната връзка Инкогнито, но отговорът ви беше грешен, може би сте го разбрали погрешно



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вход за PHP password_verify

  2. MySQL - ИЗБЕРЕТЕ името, което идва първо по азбучен ред

  3. данни за бързо синхронизиране на основни данни mysql база данни

  4. MySQL CHAR() срещу T-SQL CHAR():Каква е разликата?

  5. PHP ехо SQL Брой