Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kelemahan kinerja Kunci Utama Komposit di MySQL

INSERT dan UPDATE kinerjanya sedikit berbeda:hampir sama untuk (INT) dan (INT, INT) kunci.

SELECT kinerja komposit PRIMARY KEY tergantung pada banyak faktor.

Jika tabel Anda adalah InnoDB , maka tabel secara implisit dikelompokkan pada PRIMARY KEY nilai.

Itu berarti pencarian untuk kedua nilai akan lebih cepat jika kedua nilai terdiri dari kunci:tidak diperlukan pencarian kunci tambahan.

Dengan asumsi kueri Anda seperti ini:

SELECT  *
FROM    mytable
WHERE   col1 = @value1
        AND col2 = @value2

dan tata letak tabelnya adalah ini:

CREATE TABLE mytable (
        col1 INT NOT NULL,
        col2 INT NOT NULL,
        data VARCHAR(200) NOT NULL,
        PRIMARY KEY pk_mytable (col1, col2)
) ENGINE=InnoDB

, mesin hanya perlu mencari nilai kunci yang tepat di tabel itu sendiri.

Jika Anda menggunakan bidang peningkatan otomatis sebagai id palsu:

CREATE TABLE mytable (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        col1 INT NOT NULL,
        col2 INT NOT NULL,
        data VARCHAR(200) NOT NULL,
        UNIQUE KEY ix_mytable_col1_col2 (col1, col2)
) ENGINE=InnoDB

, maka mesin perlu, pertama, mencari nilai (col1, col2) dalam indeks ix_mytable_col1_col2 , ambil penunjuk baris dari indeks (nilai id ) dan buat pencarian lain dengan id dalam tabel itu sendiri.

Untuk MyISAM tabel, bagaimanapun, ini tidak ada bedanya, karena MyISAM tabel diatur tumpukan dan penunjuk baris hanyalah offset file.

Dalam kedua kasus, indeks yang sama akan dibuat (untuk PRIMARY KEY atau untuk UNIQUE KEY ) dan akan digunakan dengan cara yang sama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Temukan grup catatan yang cocok dengan beberapa nilai

  2. Cara memperbarui DB MySql menggunakan Flex

  3. pilih beberapa baris dalam satu baris hasil

  4. Bagaimana cara menggunakan regex di MySQL?

  5. Aplikasi Android Xamarin dengan database MySql/Sql online