indeks mysql apa maksudnya
Dalam MySQL, indeks merujuk kepada "indeks", iaitu struktur pangkalan data khas yang terdiri daripada satu atau lebih lajur dalam jadual data. Ia boleh digunakan untuk menanyakan dengan pantas lajur tertentu dalam rekod nilai . Melalui indeks, apabila menanyakan data, anda tidak perlu membaca semua maklumat rekod, tetapi hanya menanyakan lajur indeks jika tidak, sistem pangkalan data akan membaca semua maklumat setiap rekod untuk dipadankan. Oleh itu, menggunakan indeks boleh meningkatkan kelajuan pertanyaan pangkalan data dan meningkatkan prestasi sistem pangkalan data dengan berkesan.
Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.
Dalam MySQL, indeks merujuk kepada "indeks", iaitu struktur pangkalan data khas yang terdiri daripada satu atau lebih lajur dalam jadual data. Ia boleh digunakan untuk menanyakan dengan pantas lajur tertentu dalam rekod nilai .
Melalui indeks, apabila menanyakan data, anda tidak perlu membaca semua maklumat yang direkodkan, tetapi hanya menanya lajur indeks. Jika tidak, sistem pangkalan data akan membaca semua maklumat setiap rekod untuk dipadankan.
Indeks boleh dibandingkan dengan urutan fonetik Kamus Xinhua. Sebagai contoh, jika anda ingin mencari perkataan "ku", jika anda tidak menggunakan urutan fonetik, anda perlu mencarinya halaman demi halaman dalam 400 halaman kamus. Walau bagaimanapun, jika anda mengekstrak pinyin untuk membentuk urutan fonetik, anda hanya perlu mencarinya terus daripada jadual fonetik lebih daripada 10 halaman. Ini boleh menjimatkan banyak masa.
Oleh itu, menggunakan indeks boleh meningkatkan kelajuan pertanyaan pangkalan data dan meningkatkan prestasi sistem pangkalan data dengan berkesan.
Mengapa menggunakan indeks
Indeks ialah hubungan antara nilai lajur dan baris rekod yang ditubuhkan dalam susunan tertentu berdasarkan satu atau beberapa lajur dalam jadual Jadual surat-menyurat pada asasnya ialah jadual tersusun yang menerangkan kesesuaian satu-satu antara nilai lajur lajur indeks dan baris rekod dalam jadual asal.
Indeks ialah objek pangkalan data yang sangat penting dalam MySQL Ia adalah asas teknologi penalaan prestasi pangkalan data dan sering digunakan untuk mencapai perolehan semula data dengan pantas.
Dalam MySQL, biasanya terdapat dua cara untuk mengakses data baris jadual pangkalan data:
1) Akses berurutan
Akses berurutan adalah untuk melakukan imbasan jadual penuh pada jadual. Lintas baris demi baris dari awal hingga akhir sehingga anda menemui data sasaran yang memenuhi syarat dalam data baris tidak tersusun.
Akses berjujukan agak mudah untuk dilaksanakan, tetapi apabila terdapat sejumlah besar data dalam jadual, kecekapan adalah sangat rendah. Sebagai contoh, apabila mencari sejumlah kecil data di antara berpuluh-puluh juta data, menggunakan akses berjujukan akan merentasi semua data, yang akan mengambil banyak masa dan jelas akan menjejaskan prestasi pemprosesan pangkalan data.
2) Akses indeks
Akses indeks ialah cara untuk mengakses terus baris rekod dalam jadual dengan merentasi indeks.
Premis menggunakan kaedah ini adalah untuk mencipta indeks pada jadual Selepas mencipta indeks pada lajur, apabila mencari data, anda boleh terus mencari lokasi baris rekod yang sepadan berdasarkan indeks pada. lajur, supaya cepat mencari data. Indeks menyimpan penunjuk kepada nilai data lajur yang ditentukan, mengisih penunjuk ini mengikut susunan isihan yang ditentukan.
Contohnya, dalam jadual maklumat asas pelajar tb_pelajar, jika indeks diwujudkan berdasarkan student_id, sistem mencipta jadual pemetaan daripada lajur indeks kepada rekod sebenar. Apabila pengguna perlu mencari data dengan student_id 12022, sistem mula-mula mencari rekod pada indeks student_id, kemudian mencari terus baris data melalui jadual pemetaan dan mengembalikan baris data. Oleh kerana kelajuan mengimbas indeks secara amnya jauh lebih besar daripada kelajuan mengimbas baris data sebenar, menggunakan indeks boleh meningkatkan kecekapan pangkalan data.
Ringkasnya, tanpa menggunakan indeks, MySQL mesti membaca keseluruhan jadual bermula dari rekod pertama sehingga ia menemui baris yang berkaitan. Lebih besar jadual, lebih banyak masa yang diperlukan untuk menanyakan data. Jika lajur yang ditanya dalam jadual mempunyai indeks, MySQL boleh dengan cepat pergi ke lokasi untuk mencari fail data tanpa perlu melihat semua data, yang akan menjimatkan banyak masa.
Kebaikan dan Kelemahan Indeks
Indeks mempunyai kelebihan yang jelas dan kelemahannya yang tidak dapat dielakkan.
Kelebihan
Kelebihan indeks adalah seperti berikut:
Dengan mencipta indeks yang unik, setiap baris data dalam jadual pangkalan data boleh dijamin unik.
Boleh menetapkan indeks untuk semua jenis lajur MySQL.
boleh mempercepatkan pertanyaan data, yang merupakan sebab utama untuk menggunakan indeks.
boleh mempercepatkan sambungan antara jadual dari segi mencapai integriti rujukan data.
Apabila menggunakan klausa pengumpulan dan pengisihan untuk pertanyaan data, masa pengumpulan dan pengisihan dalam pertanyaan juga boleh dikurangkan dengan ketara
Kelemahan
Meningkatkan indeks juga mempunyai banyak kelemahan, terutamanya seperti berikut:
Mencipta dan menyelenggara kumpulan indeks mengambil masa, dan apabila jumlah data meningkat, Masa juga akan bertambah.
Indeks perlu menduduki ruang cakera Selain ruang data yang diduduki oleh jadual data, setiap indeks juga menduduki sejumlah ruang fizikal. Jika anda mempunyai bilangan indeks yang banyak, fail indeks mungkin mencapai saiz fail maksimumnya lebih cepat daripada fail data.
Apabila menambah, memadam dan mengubah suai data dalam jadual, indeks juga mesti dikekalkan secara dinamik, yang mengurangkan kelajuan penyelenggaraan data.
Apabila menggunakan indeks, anda perlu mempertimbangkan kebaikan dan keburukan indeks.
Indeks boleh meningkatkan kelajuan pertanyaan, tetapi akan menjejaskan kelajuan memasukkan rekod. Kerana apabila memasukkan rekod ke dalam jadual yang diindeks, sistem pangkalan data akan menyusun mengikut indeks, yang mengurangkan kelajuan memasukkan rekod Kesan kelajuan akan menjadi lebih jelas apabila memasukkan sejumlah besar rekod. Dalam kes ini, cara terbaik ialah memadam indeks dalam jadual dahulu, kemudian masukkan data, dan kemudian buat indeks selepas sisipan selesai.
Prinsip reka bentuk indeks
1) Perlu diingatkan bahawa indeks juga menduduki ruang cakera, jadi lebih banyak lebih baik.
2) Terlalu banyak indeks akan menjejaskan kecekapan pelaksanaan INSERT, DELETE, UPDATE dan pernyataan lain.
3) Tidak disyorkan untuk mencipta indeks jika terdapat terlalu sedikit data.
4) Untuk kekangan unik, indeks unik yang sepadan harus digunakan.
5) Cuba jangan mengindeks medan dengan perbezaan yang rendah. Contohnya: medan jantina jenis penghitungan hanya mempunyai lelaki dan wanita, yang tidak akan mencapai kesan pengoptimuman.
6) Adalah disyorkan untuk mencipta indeks semasa mencipta jadual. Jika terdapat sejumlah besar rekod dalam jadual, semua rekod dalam jadual akan diubah suai selepas lajur dibuat sebagai indeks.
7) Tidak disyorkan untuk membuat indeks untuk medan yang tidak kerap ditanya.
Jenis indeks
类型 | 作用 |
---|---|
普通索引 | 基本索引方式,无特别说明 |
唯一性索引 | 数据唯一,允许有null |
主键索引 | 表中只有一个主键,数据唯一,不允许有null |
复合索引 | 可以包含两个或多个列的索引方式 |
Hanya pilih jenis indeks yang sepadan mengikut persekitaran yang berbeza.
Buat sintaks indeks
Ambil indeks biasa sebagai contoh sebagai contoh. Apabila mengubah suai jadual untuk mengindeks
create table 表名( 字段定义… index 索引名称(字段));
, anda boleh menggunakan kunci dan bukannya indeks, dan nama indeks boleh ditinggalkan Jika tiada nama indeks ditambahkan, nama medan akan digunakan sebagai nama indeks secara lalai.
alter table 表名 add index 索引名称(字段);
Tiada apa yang perlu diberi perhatian, kaedah pengindeksan yang paling asas.
Buat jadual dan buat indeks biasa Lajur indeks ialah idLihat struktur jadual di bawah kekunci mewakili indeks biasa
mysql> create table test1(id int,name varchar(5),age tinyint,index index_id(id));
Lihat maklumat indeks
mysql> desc test1; +-------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+---------+-------+ | id | int(11) | YES | MUL | NULL | | | name | varchar(5) | YES | | NULL | | | age | tinyint(4) | YES | | NULL | | +-------+------------+------+-----+---------+-------+
Tambahkan beberapa data pada jadual untuk ujian
mysql> show index from test1\G *************************** 1. row *************************** Table: test1 Non_unique: 1 Key_name: index_id Seq_in_index: 1 Column_name: id Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: Visible: YES Expression: NULL 1 row in set (0.00 sec)
Simulasikan pelaksanaan pernyataan pertanyaan sql melalui
terangkanmysql> insert into test1 values(1,'张三',21),(2,'李四',22),(3,'王五',23),(4,'赵六',24);
Jenis: SEMUA item menunjukkan imbasan jadual penuh, dan baris: 4 menunjukkan bilangan baris. Kerana Zhao Liu adalah rekod terakhir dalam jadual, pertanyaan merentasi seluruh jadual.
mysql> explain select * from test1 where name='赵六'\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: test1 partitions: NULL type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 4 filtered: 25.00 Extra: Using where 1 row in set, 1 warning (0.00 sec)
baris: 1 bermakna hanya satu baris telah diambil dan rekod telah dijumpai.
mysql> explain select * from test1 where id=4\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: test1 partitions: NULL type: ref possible_keys: index_id key: index_id key_len: 5 ref: const rows: 1 filtered: 100.00 Extra: NULL 1 row in set, 1 warning (0.00 sec)
Indeks unik Dalam indeks unik, data dalam lajur indeks adalah unik dan tiada nilai pendua boleh muncul digunakan untuk mengekang kandungan dan membenarkan nilai nol.
Sintaks:
Indeks unik biasanya digunakan dalam medan yang nilainya tidak boleh diulang, nombor ID, nombor telefon mudah alih, dsb.
create table 表名( 字段定义… unique key 索引名(字段名));
Lihat struktur jadual, UNI di bawah kekunci diwakili sebagai indeks unik
mysql> create table test2(id int,name varchar(5),phone int,unique key unique_key_phone(phone));
Sisipkan data dan uji ciri
mysql> desc test2; +-------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | varchar(5) | YES | | NULL | | | phone | int(11) | YES | UNI | NULL | | +-------+------------+------+-----+---------+-------+
Lihat jadual data
mysql> insert into test2 values(1,'张三',1111111111); mysql> insert into test2 values(2,'李四',null); #可以为null mysql> insert into test2 values(3,'王五',1111111111); #值必须唯一 ERROR 1062 (23000): Duplicate entry '1111111111' for key 'unique_key_phone'
mysql> select * from test2; +------+--------+------------+ | id | name | phone | +------+--------+------------+ | 2 | 李四 | NULL | | 1 | 张三 | 1111111111 | +------+--------+------------+
Indeks kunci utama Indeks kunci utama adalah untuk menetapkan kunci utama Setiap jadual hanya boleh mempunyai satu kunci utama paling banyak. Nilai lajur kunci utama mestilah unik dan nilai nol tidak dibenarkan.
Sintaks:
buat nama jadual jadual (kunci utama medan); atau buat nama jadual jadual (
takrifan medan); …
Lihat struktur jadual dan PRI di bawah kunci Masukkan data ke dalam lajur indeks kunci utama
mysql> create table test3(id int primary key,name varchar(5),age tinyint);
mysql> desc test3; +-------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(5) | YES | | NULL | | | age | tinyint(4) | YES | | NULL | | +-------+------------+------+-----+---------+-------+
mysql> insert into test3 values(1,'张三',23); mysql> insert into test3 values(null,'张三',23); #不能为null ERROR 1048 (23000): Column 'id' cannot be null mysql> insert into test3 values(1,'张三',23); #值不能重复 ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> select * from test3; +----+--------+------+ | id | name | age | +----+--------+------+ | 1 | 张三 | 23 | +----+--------+------+
Indeks komposit boleh mengandungi dua atau lebih lajur. Tiada sintaks khusus, anda boleh mencipta dwi indeks untuk jadual
Buat jadual dan tetapkannya sebagai kunci utama komposit, lajur indeks ialah id, namaCiri kunci utama komposit Ia agak berbeza daripada kunci utama Ia hanya perlu mempunyai satu medan yang tidak diulang.
Lihat data jadualmysql> create table test4 (id int,name varchar(5),age tinyint,primary key(id,name));
mysql> insert into test4 values(1,'张三',21); mysql> insert into test4 values(1,'李四',21); mysql> insert into test4 values(1,'张三',21); #主键列全重复 ERROR 1062 (23000): Duplicate entry '1-张三' for key 'PRIMARY'
]
Atas ialah kandungan terperinci indeks mysql apa maksudnya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



MySQL adalah sistem pengurusan pangkalan data sumber terbuka. 1) Buat Pangkalan Data dan Jadual: Gunakan perintah Createdatabase dan Createtable. 2) Operasi Asas: Masukkan, Kemas kini, Padam dan Pilih. 3) Operasi lanjutan: Sertai, subquery dan pemprosesan transaksi. 4) Kemahiran Debugging: Semak sintaks, jenis data dan keizinan. 5) Cadangan Pengoptimuman: Gunakan indeks, elakkan pilih* dan gunakan transaksi.

Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Redis menggunakan satu seni bina berulir untuk memberikan prestasi tinggi, kesederhanaan, dan konsistensi. Ia menggunakan I/O multiplexing, gelung acara, I/O yang tidak menyekat, dan memori bersama untuk meningkatkan keserasian, tetapi dengan batasan batasan konkurensi, satu titik kegagalan, dan tidak sesuai untuk beban kerja yang berintensifkan.

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

MySQL dan SQL adalah kemahiran penting untuk pemaju. 1.MYSQL adalah sistem pengurusan pangkalan data sumber terbuka, dan SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data. 2.MYSQL menyokong pelbagai enjin penyimpanan melalui penyimpanan data yang cekap dan fungsi pengambilan semula, dan SQL melengkapkan operasi data yang kompleks melalui pernyataan mudah. 3. Contoh penggunaan termasuk pertanyaan asas dan pertanyaan lanjutan, seperti penapisan dan penyortiran mengikut keadaan. 4. Kesilapan umum termasuk kesilapan sintaks dan isu -isu prestasi, yang boleh dioptimumkan dengan memeriksa penyataan SQL dan menggunakan perintah menjelaskan. 5. Teknik pengoptimuman prestasi termasuk menggunakan indeks, mengelakkan pengimbasan jadual penuh, mengoptimumkan operasi menyertai dan meningkatkan kebolehbacaan kod.

Membina pangkalan data SQL melibatkan 10 langkah: memilih DBMS; memasang DBMS; mewujudkan pangkalan data; mewujudkan jadual; memasukkan data; mengambil data; mengemas kini data; memadam data; menguruskan pengguna; Menyandarkan pangkalan data.
