Pengindeksan pertanyaan carian dinamik berdasarkan MySQL
P粉170438285
P粉170438285 2024-03-30 20:21:47
0
1
428

Ini adalah projek pertama saya jadi saya minta maaf kerana saya mempunyai banyak soalan.

Saya cuba mencipta indeks untuk mencari jadual Cat di atas.

Namun, saya tidak tahu bagaimana untuk menerapkannya kerana terdapat beberapa kes untuk klausa di mana.

SELECT *
FROM CAT
WHERE birth between '2000-01-01' and '2009-12-31';

SELECT *
FROM CAT
WHERE birth between '2000-01-01' and '2009-12-31'
and NAME like '%blue%';

SELECT *
FROM CAT
WHERE NAME like '%blue%'
AND AGE = 5;

Jika boleh, bolehkah saya membuat indeks berasingan untuk umur, nama dan kelahiran? Jika tidak, adakah saya perlu mencipta (umur), (umur, nama), (umur, kelahiran), (umur, nama, kelahiran)... untuk setiap kes?

Walaupun selepas membaca buku, saya tidak pasti, jadi saya meninggalkan anda dengan soalan. Harap anda tidak berasa buruk tentang perkara ini.

Saya menggunakan mysql v8.0 innoDB.

Terima kasih!

P粉170438285
P粉170438285

membalas semua(1)
P粉277464743
WHERE birth between '2000-01-01' and '2009-12-31'

Mungkinakan mendapat bantuan

INDEX(birth)

Tetapi sila ambil perhatian: jika birth 的类型为 DATETIME, anda kehilangan sebahagian besar 31/12.

and NAME like '%blue%';

Tiada pengindeksan akan membantu kerana terkemuka wildcard.

AND AGE = 5

Reka bentuk seni binanya sangat teruk. Bayangkan apa yang berlaku apabila kucing mempunyai hari lahir. Anda mesti mengemas kini lajur ini. Sebaliknya, gunakan birthCURDATE() untuk melakukan aritmetik tarikh.

Tetapi jika anda menyimpan lajur age, maka ini mungkin membantu:

INDEX(age)

Saya memperkenalkan pertanyaan cat.birth dalam soalan lain hari ini; Sila lihat cat.birth 查询;看见。请参阅我的 Index Cookbook 了解有关如何为给定的 SELECT 构建合适的索引。它显示了 WHERE ... AND ... 的哪些情况可以使用“复合”(多列)INDEXBuku Masakan Indeks

saya untuk mendapatkan maklumat tentang cara membuat yang diberikan SELECT Bina indeks yang sesuai. Ia menunjukkan di mana WHERE ... AND ... boleh digunakan untuk kelebihan yang baik menggunakan "komposit" (berbilang lajur) INDEX. Tiada satu pun daripada contoh anda boleh menggunakan indeks komposit. 🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan