Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Phân vùng bảng Mysql dựa trên chữ số cuối cùng của cột / id

Tôi tự hỏi liệu có chức năng mod được phép trong khi tạo phân vùng hay không, tôi đã thực hiện nó bằng cách sử dụng

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

điều này đã tạo ra 10 phân vùng, mỗi id đi trong phân vùng của nó kết thúc bằng cùng một số với chữ số cuối cùng của id

Tôi đã thêm một vài hàng

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

sau đó thử nghiệm nó

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

ĐẦU RA:

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

chính xác những gì tôi muốn, cảm ơn bạn đã trỏ đến đúng liên kết Ẩn danh, nhưng câu trả lời của bạn sai, có lẽ bạn đã hiểu sai nó



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mô hình cơ sở dữ liệu thích hợp cho hệ thống phản hồi của người dùng (một trường hợp thú vị)

  2. MySQL trộn Damerau – Levenshtein Fuzzy với Like Wildcard

  3. Không thể hiển thị bất kỳ đầu ra nào trong JTable bằng dữ liệu MySql

  4. Gặp phải lỗi nghiêm trọng trong quá trình đọc dữ liệu

  5. Xác thực Windows với MySQLdb bằng Python