Jadual Kandungan
1 Indeks
Konsep indeks
Peranan indeks
Senario penggunaan indeks
2 Klasifikasi indeks
Perbezaan antara indeks B-tree dan B+-tree index
Buat indeks kunci utama
Ciri indeks kunci utama:
Ciri indeks unik:
indeks biasa:
Rumah pangkalan data tutorial mysql Apakah prinsip pengindeksan dan strategi pengoptimuman pangkalan data MySQL?

Apakah prinsip pengindeksan dan strategi pengoptimuman pangkalan data MySQL?

Jun 03, 2023 am 08:25 AM
mysql

1 Indeks

Konsep indeks

Indeks ialah fail khas yang mengandungi penunjuk rujukan kepada semua rekod dalam jadual data. Anda boleh membuat indeks pada satu atau lebih lajur dalam jadual dan menentukan jenis indeks Setiap jenis indeks mempunyai pelaksanaan struktur datanya sendiri.

Peranan indeks

Hubungan antara jadual, data dan indeks dalam pangkalan data adalah serupa dengan hubungan antara buku, kandungan buku dan katalog buku pada rak buku index adalah serupa dengan katalog buku , boleh digunakan untuk mencari dan mendapatkan data dengan cepat. Indeks boleh meningkatkan prestasi pangkalan data.

Senario penggunaan indeks

Untuk mempertimbangkan untuk mencipta indeks pada lajur atau lajur jadual pangkalan data, anda perlu mempertimbangkan perkara berikut:

  • Data Kelantangan adalah besar dan pertanyaan bersyarat sering dilakukan pada lajur ini.

  • Kekerapan operasi sisipan dan operasi pengubahsuaian pada lajur ini dalam jadual pangkalan data ini adalah rendah.

  • Indeks mengambil ruang cakera tambahan.

2 Klasifikasi indeks

  • Terbahagi daripada struktur storan indeks: Indeks BTree, indeks Hash, indeks teks penuh FULLTEXT, indeks RTree

  • Terbahagi daripada peringkat aplikasi: indeks biasa, indeks unik, indeks kunci primer, indeks komposit

  • Terbahagi daripada jenis nilai kunci indeks, kunci utama indeks, indeks tambahan (Indeks indeks sekunder)

  • Terbahagi daripada hubungan logik antara storan data dan nilai kunci indeks: indeks berkelompok (indeks berkelompok) indeks bukan berkelompok (indeks tidak berkelompok)

  • Dibahagikan daripada bilangan lajur indeks: indeks lajur tunggal, indeks kompaun

Perbezaan antara indeks B-tree dan B+-tree index

Apakah prinsip pengindeksan dan strategi pengoptimuman pangkalan data MySQL?

Apakah prinsip pengindeksan dan strategi pengoptimuman pangkalan data MySQL?

Perbezaan:

Data disimpan di lokasi berbeza: Pokok B+ disimpan dalam nod daun, B- pokok disimpan dalam semua nod

Mencerminkan kelebihan pepohon B+: Nod tidak menyimpan data, jadi satu nod boleh menyimpan lebih banyak kunci. Ia boleh menjadikan pokok lebih pendek, jadi bilangan operasi IO adalah lebih sedikit. Prestasi pertanyaan adalah stabil: setiap pertanyaan merentasi dari nod akar ke nod daun Panjang laluan pertanyaan adalah sama, iaitu, kecekapan setiap pertanyaan adalah setara Kerumitan masa ditetapkan pada O(log(n))

untuk nod daun Penunjuk: Nod daun bersebelahan pokok B+ disambungkan melalui penunjuk. membentuk senarai terpaut tersusun, yang memudahkan carian julat

3 Operasi indeks

Buat indeks kunci utama

-- 在创建表的时候,直接在字段名后指定 primary key
create table user1(id int primary key, name varchar(30));
-- 在创建表的最后,指定某列或某几列为主键索引
create table user2(id int, name varchar(30), primary key(id));
-- 创建表以后再添加主键
create table user3(id int, name varchar(30));
alter table user3 add primary key(id);
Salin selepas log masuk

Ciri indeks kunci utama:

    Boleh terdapat paling banyak satu indeks kunci utama dalam jadual, dan sudah tentu ia boleh dibuat untuk dipadankan dengan kunci utama
  • Indeks kunci utama sangat cekap (kunci utama tidak boleh diulang)
  • Buat lajur indeks kunci primer, nilainya tidak boleh nol dan tidak boleh diulang
  • Lajur indeks kunci primer pada asasnya adalah int
  • Penciptaan indeks unik
-- 在表定义时,在某列后直接指定unique唯一属性。
create table user4(id int primary key, name varchar(30) unique);
-- 创建表时,在表的后面指定某列或某几列为unique
create table user5(id int primary key, name varchar(30), unique(name));
-- 创建表以后再添加unique
create table user6(id int primary key, name varchar(30));
alter table user6 add unique(name);
Salin selepas log masuk

Ciri indeks unik:

    Sesuatu jadual boleh mempunyai berbilang indeks unik
  • Kecekapan pertanyaan tinggi
  • Jika indeks unik dicipta pada lajur tertentu, ia mestilah memastikan bahawa lajur ini tidak boleh mempunyai data pendua
  • Jika tidak null dinyatakan pada indeks unik, ia bersamaan dengan indeks kunci primer
  • indeks biasa Ciri-ciri mencipta
--在表的定义最后,指定某列为索引
create table user8(id int primary key,
name varchar(20),
email varchar(30),
index(name)
);
--创建完表以后指定某列为普通索引
create table user9(id int primary key, name varchar(20), email varchar(30));
alter table user9 add index(name); 
-- 创建一个索引名为 idx_name 的索引
create table user10(id int primary key, name varchar(20), email varchar(30));
create index idx_name on user10(name);
Salin selepas log masuk

indeks biasa:

    Sesuatu jadual boleh mempunyai berbilang indeks biasa lebih biasa digunakan dalam pembangunan sebenar
  • Jika lajur perlu diindeks, tetapi lajur mempunyai nilai pendua, maka kita harus menggunakan indeks biasa
  • Indeks pertanyaan

    tunjukkan kunci daripada nama jadual
mysql> tunjukkan kunci daripada goodsG
*********** 1. baris ** * ********

Jadual: barang <= Nama jadual
Bukan_unik: 0 <= 0 bermaksud indeks unik
Nama_kunci: PRIMER <= Indeks kunci utama
Seq_in_index: 1
Nama_lajur: goods_id <= Dalam lajur manakah indeks
Pengumpulan: A
Kardinaliti: 0
Sub_bahagian: NULL
Dibungkus: NULL
Nol:
Jenis_Indeks: BTREE < = Indeks dalam bentuk pokok binari
Ulasan:
1 baris dalam set (0.00 saat)

    tunjukkan indeks daripada nama jadual;
  • desc nama jadual
  • padam indeks

    padam indeks kunci utama: ubah jadual jadual jatuh kunci utama;
  • Padam indeks lain: ubah nama jadual jatuh nama indeks indeks;
    mysql> alter table user10 drop index idx_name;
    Salin selepas log masuk
  • jatuhkan nama indeks pada nama jadual
    mysql> drop index name on user8
    Salin selepas log masuk
  • Prinsip penciptaan indeks

  • Medan yang kerap digunakan kerana syarat pertanyaan harus diindeks

    • Medan dengan keunikan yang lemah tidak sesuai untuk mencipta indeks sahaja, walaupun ia kerap digunakan sebagai syarat pertanyaan

    • Medan yang dikemas kini dengan kerap tidak sesuai untuk membuat indeks

    • Medan yang tidak muncul dalam klausa tempat tidak seharusnya diindeks

    Atas ialah kandungan terperinci Apakah prinsip pengindeksan dan strategi pengoptimuman pangkalan data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Hubungan antara pengguna dan pangkalan data MySQL Hubungan antara pengguna dan pangkalan data MySQL Apr 08, 2025 pm 07:15 PM

Dalam pangkalan data MySQL, hubungan antara pengguna dan pangkalan data ditakrifkan oleh kebenaran dan jadual. Pengguna mempunyai nama pengguna dan kata laluan untuk mengakses pangkalan data. Kebenaran diberikan melalui perintah geran, sementara jadual dibuat oleh perintah membuat jadual. Untuk mewujudkan hubungan antara pengguna dan pangkalan data, anda perlu membuat pangkalan data, membuat pengguna, dan kemudian memberikan kebenaran.

Adakah Mysql perlu membayar Adakah Mysql perlu membayar Apr 08, 2025 pm 05:36 PM

MySQL mempunyai versi komuniti percuma dan versi perusahaan berbayar. Versi komuniti boleh digunakan dan diubahsuai secara percuma, tetapi sokongannya terhad dan sesuai untuk aplikasi dengan keperluan kestabilan yang rendah dan keupayaan teknikal yang kuat. Edisi Enterprise menyediakan sokongan komersil yang komprehensif untuk aplikasi yang memerlukan pangkalan data yang stabil, boleh dipercayai, berprestasi tinggi dan bersedia membayar sokongan. Faktor yang dipertimbangkan apabila memilih versi termasuk kritikal aplikasi, belanjawan, dan kemahiran teknikal. Tidak ada pilihan yang sempurna, hanya pilihan yang paling sesuai, dan anda perlu memilih dengan teliti mengikut keadaan tertentu.

Integrasi RDS MySQL dengan Redshift Zero ETL Integrasi RDS MySQL dengan Redshift Zero ETL Apr 08, 2025 pm 07:06 PM

Penyederhanaan Integrasi Data: AmazonRDSMYSQL dan Integrasi Data Integrasi Zero ETL Redshift adalah di tengah-tengah organisasi yang didorong oleh data. Proses tradisional ETL (ekstrak, menukar, beban) adalah kompleks dan memakan masa, terutamanya apabila mengintegrasikan pangkalan data (seperti Amazonrdsmysql) dengan gudang data (seperti redshift). Walau bagaimanapun, AWS menyediakan penyelesaian integrasi ETL sifar yang telah mengubah keadaan ini sepenuhnya, menyediakan penyelesaian yang mudah, hampir-sebenar untuk penghijrahan data dari RDSMYSQL ke redshift. Artikel ini akan menyelam ke integrasi RDSMYSQL Zero ETL dengan redshift, menjelaskan bagaimana ia berfungsi dan kelebihan yang dibawa kepada jurutera dan pemaju data.

Cara Mengisi Nama Pengguna dan Kata Laluan MySQL Cara Mengisi Nama Pengguna dan Kata Laluan MySQL Apr 08, 2025 pm 07:09 PM

Untuk mengisi nama pengguna dan kata laluan MySQL: 1. Tentukan nama pengguna dan kata laluan; 2. Sambungkan ke pangkalan data; 3. Gunakan nama pengguna dan kata laluan untuk melaksanakan pertanyaan dan arahan.

Pengoptimuman pertanyaan di MySQL adalah penting untuk meningkatkan prestasi pangkalan data, terutama ketika berurusan dengan set data yang besar Pengoptimuman pertanyaan di MySQL adalah penting untuk meningkatkan prestasi pangkalan data, terutama ketika berurusan dengan set data yang besar Apr 08, 2025 pm 07:12 PM

1. Gunakan indeks yang betul untuk mempercepatkan pengambilan data dengan mengurangkan jumlah data yang diimbas memilih*frommployeesWherElast_name = 'Smith'; Jika anda melihat lajur jadual beberapa kali, buat indeks untuk lajur tersebut. Jika anda atau aplikasi anda memerlukan data dari pelbagai lajur mengikut kriteria, buat indeks komposit 2. Elakkan pilih * Hanya lajur yang diperlukan, jika anda memilih semua lajur yang tidak diingini, ini hanya akan memakan lebih banyak pelayan dan menyebabkan pelayan melambatkan pada masa yang tinggi atau kekerapan misalnya, jadual anda

Cara Melihat MySQL Cara Melihat MySQL Apr 08, 2025 pm 07:21 PM

Lihat pangkalan data MySQL dengan arahan berikut: Sambungkan ke pelayan: MySQL -U Pengguna Nama -P Kata Laluan Run Show pangkalan data; Perintah untuk mendapatkan semua pangkalan data yang sedia ada Pilih pangkalan data: Gunakan nama pangkalan data; Lihat Jadual: Tunjukkan Jadual; Lihat Struktur Jadual: Huraikan nama jadual; Lihat data: pilih * dari nama jadual;

MySQL: Kemudahan Pengurusan Data untuk Pemula MySQL: Kemudahan Pengurusan Data untuk Pemula Apr 09, 2025 am 12:07 AM

MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Bagaimana untuk mengoptimumkan prestasi MySQL untuk aplikasi beban tinggi? Bagaimana untuk mengoptimumkan prestasi MySQL untuk aplikasi beban tinggi? Apr 08, 2025 pm 06:03 PM

Panduan Pengoptimuman Prestasi Pangkalan Data MySQL Dalam aplikasi yang berintensifkan sumber, pangkalan data MySQL memainkan peranan penting dan bertanggungjawab untuk menguruskan urus niaga besar-besaran. Walau bagaimanapun, apabila skala aplikasi berkembang, kemunculan prestasi pangkalan data sering menjadi kekangan. Artikel ini akan meneroka satu siri strategi pengoptimuman prestasi MySQL yang berkesan untuk memastikan aplikasi anda tetap cekap dan responsif di bawah beban tinggi. Kami akan menggabungkan kes-kes sebenar untuk menerangkan teknologi utama yang mendalam seperti pengindeksan, pengoptimuman pertanyaan, reka bentuk pangkalan data dan caching. 1. Reka bentuk seni bina pangkalan data dan seni bina pangkalan data yang dioptimumkan adalah asas pengoptimuman prestasi MySQL. Berikut adalah beberapa prinsip teras: Memilih jenis data yang betul dan memilih jenis data terkecil yang memenuhi keperluan bukan sahaja dapat menjimatkan ruang penyimpanan, tetapi juga meningkatkan kelajuan pemprosesan data.

See all articles