Dalam database, indeks biasanya digunakan untuk meningkatkan kinerja saat mencari sesuatu yang ditentukan dalam klausa where Anda. Namun ketika harus memfilter beberapa teks, mis. menggunakan sesuatu seperti WHERE TextColumn LIKE '%searchstring%'
kemudian pencarian menjadi lambat, karena cara kerja indeks basis data biasa dioptimalkan untuk kecocokan dengan 'seluruh konten' kolom dan bukan hanya sebagian saja. Khususnya pencarian LIKE yang menyertakan wildcard tidak dapat menggunakan jenis indeks apa pun.
Seperti disebutkan dalam komentar di bawah MySQL membutuhkan MATCH () ... AGAINST
sintaks untuk mencari dalam indeks teks lengkap; BTW ini bervariasi tergantung pada vendor database. Di MS SQL Anda dapat menggunakan CONTAINS
jadi ingatlah ini ketika Anda berencana untuk mendukung database lain juga.
Indeks teks lengkap berfungsi lebih baik untuk teks biasa, karena dioptimalkan untuk jenis kolom ini. Sangat disederhanakan:Mereka membagi teks menjadi kata-kata dan membuat indeks di atas kata-kata dan bukan keseluruhan teks. Ini bekerja jauh lebih cepat untuk pencarian teks ketika mencari kata-kata tertentu.