Rumah pangkalan data tutorial mysql 有关MySQL InnoDB在索引中自动添加主键的问题_MySQL

有关MySQL InnoDB在索引中自动添加主键的问题_MySQL

Jun 01, 2016 pm 01:34 PM
pengguna

bitsCN.com

有关MySQL InnoDB在索引中自动添加主键的问题

 

 ㈠ 原理:

   

      只要用户定义的索引字段中包含了主键中的字段、那么这个字段就不会再被InnoDB自动加到索引中

      但如果用户的索引字段中没有完全包含主键字段、InnoDB 就会把剩下的主键字段加到索引末尾

   

   ㈡ 例子

   

      例子一:

 

[sql] 

CREATE TABLE t (  

  a char(32) not null primary key,  

  b char(32) not null,  

  KEY idx1 (a,b),  

  KEY idx2 (b,a)  

) Engine=InnoDB;  

 

      idx1 和 idx2 两个索引内部大小完全一样、没有区别

   

      例子二:

 

[sql] 

CREATE TABLE t (  

  a char(32) not null,  

  b char(32) not null,  

  c char(32) not null,  

  d char(32) not null,  

  PRIMARY KEY (a,b)  

  KEY idx1 (c,a),  

  KEY idx2 (d,b)  

) Engine=InnoDB;  

 

 

   这个表 InnoDB 会自动补全主键字典、idx1 实际上内部存储为 (c,a,b),idx2 实际上内部存储为 (d,b,a)

   但是这个自动添加的字段、Server 层是不知道的、所以 MySQL 优化器并不知道这个字段的存在、那么如果你有一个查询:

   

[sql] 

SELECT * FROM t WHERE d=x1 AND b=x2 ORDER BY a;  

 

   

   其实内部存储的 idx2(d,b,a) 可以让这个查询完全走索引、但是由于 Server 层不知道、

   所以最终 MySQL优化器 可能选择 idx2(d,b) 做过滤然后排序 a 字段、或者直接用PK扫描避免排序

   

   而如果我们定义表结构的时候就定义为 KEY idx2(d,b,a) 、那么 MySQL 就知道(d,b,a)三个字段索引中都有、

   并且 InnoDB 发现用户定义的索引中包含了所有的主键字段、也不会再添加了、并没有增加存储空间

   

   ㈢ 建议

   

   因此、由衷的建议、所有的 MySQL DBA 建索引的时候、都在业务要求的索引字段后面补上主键字段、

   这没有任何损失、但是可能给你带来意外的惊喜哦

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

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)

Bagaimana untuk menggunakan akaun Xiaohongshu untuk mencari pengguna? Bolehkah saya mencari nombor telefon bimbit saya? Bagaimana untuk menggunakan akaun Xiaohongshu untuk mencari pengguna? Bolehkah saya mencari nombor telefon bimbit saya? Mar 22, 2024 am 08:40 AM

Dengan perkembangan pesat media sosial, Xiaohongshu telah menjadi salah satu platform sosial yang paling popular. Pengguna boleh membuat akaun Xiaohongshu untuk menunjukkan identiti peribadi mereka dan berkomunikasi serta berinteraksi dengan pengguna lain. Jika anda perlu mencari nombor Xiaohongshu pengguna, anda boleh mengikuti langkah mudah ini. 1. Bagaimana untuk menggunakan akaun Xiaohongshu untuk mencari pengguna? 1. Buka APP Xiaohongshu, klik butang "Temui" di penjuru kanan sebelah bawah, dan kemudian pilih pilihan "Nota". 2. Dalam senarai nota, cari nota yang disiarkan oleh pengguna yang ingin anda cari. Klik untuk memasuki halaman butiran nota. 3. Pada halaman butiran nota, klik butang "Ikuti" di bawah avatar pengguna untuk memasuki halaman utama peribadi pengguna. 4. Di penjuru kanan sebelah atas halaman utama peribadi pengguna, klik butang tiga titik dan pilih "Maklumat Peribadi"

Pengguna dan kumpulan tempatan tiada pada Windows 11: Cara menambahnya Pengguna dan kumpulan tempatan tiada pada Windows 11: Cara menambahnya Sep 22, 2023 am 08:41 AM

Utiliti Pengguna dan Kumpulan Tempatan terbina dalam Pengurusan Komputer dan boleh diakses dari konsol atau secara bebas. Walau bagaimanapun, sesetengah pengguna mendapati bahawa pengguna dan kumpulan tempatan tiada dalam Windows 11. Bagi sesetengah orang yang mempunyai akses kepadanya, mesej tersebut menunjukkan bahawa snap-in ini mungkin tidak berfungsi dengan versi Windows 10 ini. Untuk mengurus akaun pengguna untuk komputer ini, gunakan alat Akaun Pengguna dalam Panel Kawalan. Isu ini telah dilaporkan dalam lelaran Windows 10 sebelumnya dan biasanya disebabkan oleh isu atau kesilapan di pihak pengguna. Mengapakah pengguna dan kumpulan tempatan tiada dalam Windows 11? Anda menjalankan edisi Windows Home, pengguna dan kumpulan tempatan tersedia pada edisi Profesional dan ke atas. Aktiviti

Log masuk ke Ubuntu sebagai pengguna super Log masuk ke Ubuntu sebagai pengguna super Mar 20, 2024 am 10:55 AM

Dalam sistem Ubuntu, pengguna root biasanya dilumpuhkan. Untuk mengaktifkan pengguna root, anda boleh menggunakan arahan passwd untuk menetapkan kata laluan dan kemudian menggunakan arahan su untuk log masuk sebagai root. Pengguna akar ialah pengguna dengan hak pentadbiran sistem tanpa had. Dia mempunyai kebenaran untuk mengakses dan mengubah suai fail, pengurusan pengguna, pemasangan dan pengalihan keluar perisian, dan perubahan konfigurasi sistem. Terdapat perbezaan yang jelas antara pengguna akar dan pengguna biasa Pengguna akar mempunyai kuasa tertinggi dan hak kawalan yang lebih luas dalam sistem. Pengguna akar boleh melaksanakan perintah sistem yang penting dan mengedit fail sistem, yang tidak boleh dilakukan oleh pengguna biasa. Dalam panduan ini, saya akan meneroka pengguna akar Ubuntu, cara log masuk sebagai akar, dan bagaimana ia berbeza daripada pengguna biasa. Notis

Terokai Panduan Windows 11: Cara Mengakses Folder Pengguna pada Pemacu Keras Lama Terokai Panduan Windows 11: Cara Mengakses Folder Pengguna pada Pemacu Keras Lama Sep 27, 2023 am 10:17 AM

Folder tertentu tidak selalu boleh diakses kerana kebenaran, dan dalam panduan hari ini kami akan menunjukkan kepada anda cara untuk mengakses folder pengguna pada pemacu keras lama anda pada Windows 11. Prosesnya mudah tetapi boleh mengambil sedikit masa, kadangkala berjam-jam, bergantung pada saiz pemacu, jadi lebih bersabar dan ikut arahan dalam panduan ini dengan teliti. Mengapa saya tidak boleh mengakses folder pengguna saya pada pemacu keras lama saya? Folder pengguna dimiliki oleh komputer lain, jadi anda tidak boleh mengubah suainya. Anda tidak mempunyai sebarang kebenaran pada folder selain pemilikan. Bagaimana untuk membuka fail pengguna pada cakera keras lama? 1. Ambil pemilikan folder dan tukar kebenaran Cari direktori pengguna lama, klik kanan padanya dan pilih Properties. Navigasi ke "An

Apakah sudo dan mengapa ia penting? Apakah sudo dan mengapa ia penting? Feb 21, 2024 pm 07:01 PM

sudo (eksekusi superuser) ialah arahan utama dalam sistem Linux dan Unix yang membenarkan pengguna biasa menjalankan perintah tertentu dengan keistimewaan root. Fungsi sudo dicerminkan terutamanya dalam aspek berikut: Menyediakan kawalan kebenaran: sudo mencapai kawalan ketat ke atas sumber sistem dan operasi sensitif dengan membenarkan pengguna mendapatkan kebenaran superuser buat sementara waktu. Pengguna biasa hanya boleh mendapatkan keistimewaan sementara melalui sudo apabila diperlukan, dan tidak perlu log masuk sebagai pengguna super sepanjang masa. Keselamatan yang dipertingkatkan: Dengan menggunakan sudo, anda boleh mengelak daripada menggunakan akaun akar semasa operasi rutin. Menggunakan akaun akar untuk semua operasi boleh menyebabkan kerosakan sistem yang tidak dijangka, kerana sebarang operasi yang salah atau cuai akan mempunyai kebenaran penuh. dan

Tutorial: Bagaimana untuk memadam akaun pengguna biasa dalam sistem Ubuntu? Tutorial: Bagaimana untuk memadam akaun pengguna biasa dalam sistem Ubuntu? Jan 02, 2024 pm 12:34 PM

Ramai pengguna telah ditambahkan ke sistem Ubuntu Saya ingin memadamkan pengguna yang tidak lagi digunakan. Mari kita lihat tutorial terperinci di bawah. 1. Buka baris arahan terminal dan gunakan perintah userdel untuk memadam pengguna yang ditentukan. Pastikan anda menambah perintah kebenaran sudo, seperti yang ditunjukkan dalam rajah di bawah 2. Apabila memadam, pastikan anda berada dalam direktori pentadbir tidak mempunyai kebenaran ini, seperti yang ditunjukkan dalam rajah di bawah 3. Selepas arahan padam dilaksanakan, bagaimana untuk menilai sama ada ia telah benar-benar dipadamkan? Seterusnya kami menggunakan arahan cat untuk membuka fail passwd, seperti yang ditunjukkan dalam rajah di bawah 4. Kami melihat bahawa maklumat pengguna yang dipadam tidak lagi dalam fail passwd, yang membuktikan bahawa pengguna telah dipadam, seperti yang ditunjukkan dalam rajah di bawah 5. Kemudian kita masukkan fail rumah

Windows 11 KB5031455 gagal dipasang, menyebabkan isu lain untuk sesetengah pengguna Windows 11 KB5031455 gagal dipasang, menyebabkan isu lain untuk sesetengah pengguna Nov 01, 2023 am 08:17 AM

Microsoft mula melancarkan KB2 kepada umum sebagai kemas kini pilihan untuk Windows 503145511H22 atau lebih baru. Ini ialah kemas kini pertama untuk mendayakan ciri Windows 11 Moment 4 secara lalai, termasuk Windows Copilot di kawasan yang disokong, pratonton sokongan untuk item dalam menu Mula, nyahkumpulan bar tugas dan banyak lagi. Selain itu, ia membetulkan beberapa pepijat Windows 11, termasuk potensi masalah prestasi yang menyebabkan kebocoran memori. Tetapi ironinya, kemas kini pilihan untuk September 2023 akan menjadi bencana bagi pengguna yang cuba memasang kemas kini, malah bagi mereka yang telah memasangnya. Ramai pengguna tidak akan memasang Wi ini

Analisis mekanisme penyimpanan kata laluan pengguna dalam sistem Linux Analisis mekanisme penyimpanan kata laluan pengguna dalam sistem Linux Mar 20, 2024 pm 04:27 PM

Analisis mekanisme penyimpanan kata laluan pengguna dalam sistem Linux Dalam sistem Linux, penyimpanan kata laluan pengguna adalah salah satu mekanisme keselamatan yang sangat penting. Artikel ini akan menganalisis mekanisme penyimpanan kata laluan pengguna dalam sistem Linux, termasuk storan kata laluan yang disulitkan, proses pengesahan kata laluan dan cara mengurus kata laluan pengguna dengan selamat. Pada masa yang sama, contoh kod khusus akan digunakan untuk menunjukkan proses operasi sebenar penyimpanan kata laluan. 1. Penyimpanan kata laluan yang disulitkan Dalam sistem Linux, kata laluan pengguna tidak disimpan dalam sistem dalam teks biasa, tetapi disulitkan dan disimpan. L

See all articles