Rumah pangkalan data tutorial mysql mysql or条件可以使用索引而避免全表扫描_MySQL

mysql or条件可以使用索引而避免全表扫描_MySQL

Jun 01, 2016 pm 01:43 PM
mengimbas permukaan

bitsCN.com

 

在某些情况下,or条件可以避免全表扫描的。

 

1 .where 语句里面如果带有or条件, myisam表能用到索引,innodb不行。

 

1)myisam表:

 CREATE TABLE IF NOT EXISTS `a` (

  `id` int(1) NOT NULL AUTO_INCREMENT,

  `uid` int(11) NOT NULL,

  `aNum` char(20) DEFAULT NULL,

  PRIMARY KEY (`id`),

  KEY `uid` (`uid`)

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

 

mysql> explain select * from a where id=1 or uid =2;

+----+-------------+-------+-------------+---------------+-------------+---------+------+------+---------------------------------------+

| id | select_type | table | type        | possible_keys | key         | key_len | ref  | rows | Extra                                 |

+----+-------------+-------+-------------+---------------+-------------+---------+------+------+---------------------------------------+

|  1 | SIMPLE      | a     | index_merge | PRIMARY,uid   | PRIMARY,uid | 4,4     | NULL |    2 | Using union(PRIMARY,uid); Using where |

+----+-------------+-------+-------------+---------------+-------------+---------+------+------+---------------------------------------+

1 row in set (0.00 sec)

 

2)innodb表:

 

CREATE TABLE IF NOT EXISTS `a` (

  `id` int(1) NOT NULL AUTO_INCREMENT,

  `uid` int(11) NOT NULL,

  `aNum` char(20) DEFAULT NULL,

  PRIMARY KEY (`id`),

  KEY `uid` (`uid`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

 

 

mysql>  explain select * from a where id=1 or uid =2;

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra       |

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

|  1 | SIMPLE      | a     | ALL  | PRIMARY,uid   | NULL | NULL    | NULL |    5 | Using where |

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

1 row in set (0.00 sec)

 

 

2 .必须所有的or条件都必须是独立索引:

+-------+----------------------------------------------------------------------------------------------------------------------

| Table | Create Table

+-------+----------------------------------------------------------------------------------------------------------------------

| a     | CREATE TABLE `a` (

  `id` int(1) NOT NULL AUTO_INCREMENT,

  `uid` int(11) NOT NULL,

  `aNum` char(20) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 |

+-------+----------------------------------------------------------------------------------------------------------------------

1 row in set (0.00 sec)

 

explain查看:

mysql> explain select * from a where id=1 or uid =2;

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra       |

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

|  1 | SIMPLE      | a     | ALL  | PRIMARY       | NULL | NULL    | NULL |    5 | Using where |

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

1 row in set (0.00 sec)

 

全表扫描了。

 

摘自 hguisu的专栏

bitsCN.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan Windows Defender untuk mengimbas folder dalam Win10. Cara menggunakan Windows Defender untuk mengimbas folder dalam Win10. Jul 10, 2023 pm 11:17 PM

Windows 10 mempunyai program antivirus percuma yang dipanggil Windows Defender, yang menyediakan perlindungan masa nyata dan boleh mengimbas komputer anda. Ini juga membolehkan anda melakukan imbasan tersuai, di mana anda boleh menentukan folder atau pemacu tertentu untuk mengimbas perisian hasad. Kerana anda hanya perlu mengimbas folder ini, masa imbasan akan menjadi lebih cepat daripada mengimbas keseluruhan mesin. Seperti yang ditunjukkan di bawah, kami menawarkan dua cara untuk menyesuaikan imbasan untuk folder khusus anda. Cara menggunakan Windows Defender untuk mengimbas folder untuk perisian hasad dalam Win10. Untuk mengimbas folder individu dan subfoldernya, cara paling mudah ialah klik kanan folder dan pilih Imbas dengan Windows Defender

Bagaimana NetEase Cloud Music mengimbas muzik tempatan_NetEase Cloud Music mengimbas tutorial muzik tempatan Bagaimana NetEase Cloud Music mengimbas muzik tempatan_NetEase Cloud Music mengimbas tutorial muzik tempatan Mar 25, 2024 pm 10:21 PM

1. Buka NetEase Cloud Music, klik My, kemudian klik Local Music. 2. Klik tiga titik di penjuru kanan sebelah atas. 3. Klik Imbas muzik tempatan. 4. Klik Tetapan Imbasan di bawah. 5. Leret ke kiri untuk menapis fail audio yang lebih pendek daripada 60 saat. 6. Kembali dan klik Imbasan Penuh untuk mengimbas semua muzik tempatan.

Bagaimana untuk mengimbas dari pencetak HP ke dalam pdf Bagaimana untuk mengimbas dari pencetak HP ke dalam pdf Feb 19, 2024 am 10:06 AM

Selepas menggunakan pencetak HP untuk mengimbas dokumen, ramai pengguna ingin mengimbasnya terus ke dalam fail PDF, tetapi mereka tidak tahu cara melakukannya dengan jayanya. Mereka hanya perlu menggunakan program pengimbas pada komputer mereka. Cara mengimbas daripada pencetak HP ke dalam PDF: 1. Mula-mula buka program pengimbas pada komputer anda. 2. Kemudian pilih "Simpan PDF" dalam tetapan halaman. 3. Kemudian tekan "Scan" di penjuru kanan sebelah bawah untuk mula mengimbas fail pertama. 4. Selepas selesai, klik ikon "+" di penjuru kiri sebelah bawah untuk menambah halaman imbasan baharu. 5. Anda akan melihat kotak imbasan baharu di sebelah fail asal. 7. Apabila selesai, pilih "Simpan" untuk menyimpan fail PDF ini.

Bagaimana untuk mengimbas kod QR Quark Bagaimana untuk mengimbas kod QR Quark Feb 27, 2024 pm 04:10 PM

Dalam perisian Quark, pelbagai fungsi membawa kemudahan dan keseronokan kepada pengguna, antaranya fungsi pengimbasan sangat popular. Melalui fungsi imbasan, pengguna boleh mengimbas kod QR dengan mudah, sama ada log masuk ke laman web dengan pantas, menambah rakan, atau memuat turun aplikasi, semuanya boleh dilakukan dengan satu klik. Jadi, bagaimana untuk menggunakan fungsi pengimbasan kod QR Quark Pemain yang masih tidak tahu cara menggunakannya mesti tidak ketinggalan. Cara mengimbas kod QR Quark dan menjawab: [Quark]-[Tiga ikon mendatar]-[Ambil foto dan imbas]. Langkah-langkah khusus: 1. Mula-mula buka perisian Quark Selepas memasuki halaman utama, kami klik [tiga ikon mendatar] di sudut kanan bawah 2. Kemudian luncurkan ke atas pada Halaman Saya ke bahagian bawah halaman untuk mencari [Imbasan Foto ]

扫描出来的文件模糊怎么处理 扫描出来的文件模糊怎么处理 Jan 05, 2021 pm 03:09 PM

处理方法:1、在ps软件中打开要处理的扫描图片;2、点击顶部工具栏的“滤镜”-“锐化”-“智能锐化”;3、在弹出的窗口中,根据需求选择锐化半径,点击“确定”;4、点击“文件”-“储存为”,另存为一个文件即可。

Nota Pembangunan C#: Pengimbasan dan Pembaikan Kerentanan Keselamatan Nota Pembangunan C#: Pengimbasan dan Pembaikan Kerentanan Keselamatan Nov 23, 2023 am 08:26 AM

Dalam pembangunan C#, dengan pembangunan berterusan teknologi rangkaian, isu keselamatan menjadi semakin serius. Untuk memastikan keselamatan aplikasi, pembangun perlu memberi perhatian kepada pengimbasan dan pembaikan kelemahan keselamatan. Artikel ini akan memperkenalkan langkah berjaga-jaga dari aspek berikut. 1. Beri perhatian kepada keselamatan penghantaran data Dalam aplikasi, keselamatan penghantaran data adalah sangat penting. Terutama apabila menggunakan rangkaian untuk menghantar data, protokol selamat dan algoritma penyulitan harus digunakan di mana mungkin. Untuk memastikan integriti dan kerahsiaan data, adalah disyorkan untuk menggunakan Secure Socket Layer (SSL) atau Transport Layer Security (TLS), dsb.

Bagaimana untuk menggunakan pengimbasan kod QR dalam PHP? Bagaimana untuk menggunakan pengimbasan kod QR dalam PHP? Aug 19, 2023 pm 07:49 PM

Bagaimana untuk menggunakan pengimbasan kod QR dalam PHP? Pengimbasan kod QR telah menjadi sangat biasa dalam kehidupan moden. Sama ada Alipay, WeChat Pay atau pelbagai aplikasi lain, anda boleh membayar atau memindahkan maklumat dengan cepat dengan mengimbas kod QR. Dalam PHP, kami juga boleh melaksanakan fungsi pengimbasan kod QR dengan mudah. Artikel ini akan memperkenalkan cara menggunakan PHP untuk pengimbasan kod QR dan memberikan contoh kod yang sepadan. Pertama, kami memerlukan perpustakaan penjanaan kod QR PHP Di sini kami memilih untuk menggunakan perpustakaan "PHPQRCode".

Imbas nota bercetak dan tulisan tangan dalam apl Nota untuk iPhone Imbas nota bercetak dan tulisan tangan dalam apl Nota untuk iPhone Nov 29, 2023 pm 11:19 PM

Pada tahun 2022, Apple menambahkan ciri baharu pada apl Notes pada iPhone dan iPad yang membolehkan anda mengimbas teks bercetak atau tulisan tangan dengan cepat dan menyimpannya dalam format teks digital. Baca terus untuk mengetahui cara ia berfungsi. Pada versi iOS dan iPadOS yang lebih awal, mengimbas teks ke dalam apl Nota Apple perlu mengetik medan teks nota dan kemudian mengetik pilihan "Teks Langsung" dalam menu pop timbul. Walau bagaimanapun, Apple menjadikannya lebih mudah untuk mendigitalkan nota dunia sebenar pada tahun 2022. Langkah berikut menunjukkan kepada anda cara melakukan ini pada peranti yang menjalankan iOS 15.4 atau iPadOS 15.4 dan ke atas. Pada iPhone atau iPad anda, buka "

See all articles