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

Thay thế cho thiết kế cơ sở dữ liệu với các cột được liệt kê, dẫn đến hiệu suất kém

Thay vì

PRIMARY KEY (`expressionId`),
UNIQUE KEY `geneId` (`geneId`,`conditionId`),

sử dụng

PRIMARY KEY(`geneId`,`conditionId`),
INDEX (`expressionId`),

Nếu không có bảng nào khác đang sắp xếp lại expressionId , loại bỏ cột đó và chỉ mục trên đó.

Tại sao điều này lại giúp ích? Dữ liệu được nhóm với khóa chính; bạn đang tra cứu dữ liệu bằng geneId , đó là sự bắt đầu của PK; do đó, dữ liệu có thể được tìm nạp hiệu quả hơn, đặc biệt nếu bảng lớn hơn nhiều so với innodb_buffer_pool_size (sẽ chiếm khoảng 70% RAM).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ĐẶT HÀNG THEO ngày với những ngày đã qua sau những ngày sắp tới

  2. Làm cách nào để chọn một trường có điều kiện từ một trong hai bảng?

  3. MySQL - Đặt tên cột cho ID khi tạo?

  4. Làm cách nào để lấy múi giờ hiện tại của MySQL?

  5. Hiển thị tất cả các bảng. Chức năng giống như mô tả