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

Mengapa MySQL tidak menggunakan salah satu dari kemungkinan kunci ini?

Masalah lain yang mungkin Anda temui adalah ketidakcocokan tipe data. Misalnya, jika kolom Anda adalah tipe data string (CHAR, misalnya), dan kueri Anda tidak mengutip angka, maka MySQL tidak akan menggunakan indeks.

SELECT * FROM tbl WHERE col = 12345; # No index
SELECT * FROM tbl WHERE col = '12345'; # Index

Sumber:Baru saja mengatasi masalah yang sama hari ini, dan mempelajari cara yang sulit di MySQL 5.1. :)

Sunting:Informasi tambahan untuk memverifikasi ini:

mysql> desc das_table \G
*************************** 1. row ***************************
  Field: das_column
   Type: varchar(32)
   Null: NO
    Key: PRI
Default: 
  Extra: 
*************************** 2. row ***************************
[SNIP!]

mysql> explain select * from das_table where das_column = 189017 \G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: das_column
         type: ALL
possible_keys: PRIMARY
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 874282
        Extra: Using where
1 row in set (0.00 sec)

mysql> explain select * from das_table where das_column = '189017' \G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: das_column
         type: const
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 34
          ref: const
         rows: 1
        Extra: 
1 row in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana mendefinisikan indeks unik pada banyak kolom dalam sekuel

  2. MySQL menghitung rata-rata bergerak dari N baris

  3. Mereferensikan tabel kueri luar dalam subkueri

  4. Apakah membatasi kueri ke satu catatan meningkatkan kinerja?

  5. Mengapa tabel InnoDB saya memiliki nilai aneh untuk jumlah record?