Rumah  >  Artikel  >  pangkalan data  >  Kekangan dan indeks MySql: cara mencipta pangkalan data dengan cekap

Kekangan dan indeks MySql: cara mencipta pangkalan data dengan cekap

PHPz
PHPzasal
2023-06-16 09:09:371541semak imbas

Dengan perkembangan zaman maklumat, pengurusan data menjadi semakin penting, dan pangkalan data ialah salah satu alat pengurusan data yang paling asas. Pangkalan data berfungsi dengan baik di kawasan yang memerlukan storan maklumat yang banyak, mendapatkan semula maklumat dengan cepat dan memastikan konsistensi data. Dalam proses penciptaan pangkalan data, reka bentuk struktur dan prestasinya merupakan langkah yang sangat kritikal Artikel ini akan memperkenalkan anda kepada cara menggunakan kekangan dan indeks MySql untuk meningkatkan kualiti dan prestasi data semasa mencipta pangkalan data.

Kekangan MySql

Kekangan MySql merujuk kepada peraturan yang mengehadkan data dalam pangkalan data, memastikan data tersebut memenuhi keperluan yang ditetapkan semasa memasukkan atau mengemas kini. Jenis kekangan yang disokong oleh MySql termasuk kekangan kunci utama, kekangan unik, kekangan kunci asing, kekangan bukan nol, kekangan nilai lalai, dsb., yang diperkenalkan satu demi satu di bawah:

  1. Kekangan kunci utama

Kunci utama Kekangan ialah lajur dalam jadual yang mengenal pasti rekod data secara unik Nilai lajur kunci utama mestilah unik dan tidak boleh nol. Kekangan utama utama diisytiharkan semasa mentakrifkan jadual, boleh diisytiharkan secara berasingan semasa mencipta jadual, atau boleh ditambah kemudian menggunakan pernyataan ALTER TABLE. Contohnya:

BUAT JADUAL pekerja (

id INT PRIMARY KEY,
name VARCHAR(50),
age INT

);

Lajur id dalam jadual ini ialah kekangan kunci utama, yang bermaksud bahawa nilai id setiap rekod data mestilah unik, dan Tidak boleh batal.

  1. Kekangan unik

Kekangan unik memerlukan nilai lajur mestilah unik, tetapi nilai nol dibenarkan. Jadual boleh mempunyai berbilang lajur kekangan unik, yang digunakan sama dengan kekangan utama utama. Contohnya:

BUAT JADUAL pekerja (

id INT,
email VARCHAR(50) UNIQUE,
name VARCHAR(50),
age INT

);

Dalam jadual ini, lajur e-mel adalah satu-satunya kekangan, yang bermaksud bahawa nilai e-mel mestilah unik, tapi boleh kosong.

  1. Kekangan kunci asing

Kekangan kunci asing digunakan untuk memastikan data dalam jadual mempunyai perkaitan yang betul. Kekangan kunci asing ialah senarai satu atau lebih lajur yang nilainya mesti sepadan dengan nilai kunci utama atau lajur kekangan unik dalam jadual lain. Contohnya:

BUAT JADUAL pekerja (

id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
department_id INT,
FOREIGN KEY (department_id) REFERENCES department(id)

);

Dalam jadual ini, lajur department_id ditakrifkan sebagai kekangan kunci asing, dan kata kunci RUJUKAN digunakan untuk rujuk jadual lain Kunci utama atau lajur kekangan unik.

  1. Kekangan bukan nol

Kekangan bukan nol digunakan untuk memastikan bahawa nilai lajur bukan NULL. Contohnya:

BUAT JADUAL pekerja (

id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT

);

Dalam jadual ini, lajur nama tidak membenarkan nilai nol.

  1. Kekangan nilai lalai

Kekangan nilai lalai digunakan untuk memastikan bahawa apabila data baharu dimasukkan, jika nilai lajur tidak dinyatakan, nilai lalai digunakan . Contohnya:

BUAT JADUAL pekerja (

id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
hire_date DATE DEFAULT '2020-01-01'

);

Dalam jadual ini, lajur tarikh_hire mentakrifkan nilai lalai 1 Januari 2020. Jika data dimasukkan Jika tiada nilai dinyatakan untuk lajur ini, nilai lalai digunakan secara automatik.

Indeks MySql

Indeks MySQL ialah struktur data yang dicipta dalam jadual untuk mencari dan mengakses data dalam jadual dengan cepat. Jenis indeks yang disokong oleh MySql termasuk indeks B-tree, indeks teks penuh, indeks hash, dsb., yang diperkenalkan satu demi satu di bawah:

  1. Indeks B-tree

Indeks B-tree ialah Jenis indeks yang paling biasa digunakan, yang boleh mencari rekod data dengan cepat. Indeks B-tree termasuk indeks kunci utama, indeks unik dan indeks biasa, dan ia dicipta dengan cara yang sama.

Indeks kunci utama dan indeks unik ialah indeks yang dibina pada lajur tunggal atau berbilang lajur. Indeks kunci utama ialah indeks pada lajur kunci utama dalam jadual . Mereka memerlukan lajur indeks Nilainya unik.

Indeks biasa tidak mempunyai keperluan keunikan dan membenarkan nilai pendua muncul dalam lajur indeks. Contohnya:

BUAT JADUAL pekerja (

id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
INDEX name_index (name)

);

Dalam jadual ini, lajur name_index ditakrifkan sebagai lajur indeks biasa untuk mempercepatkan carian nama lajur.

  1. Indeks teks penuh

Indeks teks penuh ialah indeks yang digunakan untuk mencari lajur yang mengandungi teks, yang boleh mencari data teks yang mengandungi kata kunci dengan cepat. Contohnya:

BUAT artikel JADUAL (

id INT PRIMARY KEY,
title VARCHAR(50),
content TEXT,
FULLTEXT search_index (title, content)

);

Dalam jadual ini, lajur search_index ditakrifkan sebagai lajur indeks teks penuh, digunakan untuk mempercepatkan carian lajur tajuk dan kandungan.

  1. Indeks cincang

Indeks cincang ialah indeks berdasarkan algoritma cincang, yang boleh mengesan rekod data dengan cepat. Indeks cincang hanya boleh digunakan untuk pertanyaan kesamaan, bukan pertanyaan julat dan pengisihan. Contohnya:

BUAT pelajar JADUAL (

id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
INDEX age_index (age) USING HASH

);

Dalam jadual ini, lajur indeks_umur ditakrifkan sebagai lajur indeks cincang, digunakan untuk mempercepatkan lajur umur Cari.

Kesimpulan

Apabila mencipta pangkalan data, kekangan dan indeks adalah faktor utama yang sangat penting penggunaannya yang betul boleh meningkatkan kualiti data dan prestasi pangkalan data. Apabila menggunakan kekangan dan indeks, anda harus memilih jenis yang sesuai mengikut ciri dan keperluan data untuk mencapai hasil yang terbaik.

Atas ialah kandungan terperinci Kekangan dan indeks MySql: cara mencipta pangkalan data dengan cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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