Sambil menuju 'terhormat ', 2 Jutaan baris masih merupakan ukuran yang relatif kecil untuk sebuah meja. (Dan karena itu kinerja yang lebih cepat biasanya dimungkinkan)
Seperti yang Anda ketahui, wildcard front-end sangat tidak efisien dan kami harus menemukan solusi untuk ini jika kasus penggunaan itu umum untuk aplikasi Anda.
Mungkin saja Anda tidak memiliki kumpulan indeks yang tepat . Namun, sebelum saya melanjutkan, saya ingin menekankan bahwa sementara indeks biasanya akan meningkatkan kinerja DBMS dengan semua jenis pernyataan SELECT, itu secara sistematis memiliki efek negatif pada kinerja operasi "CUD" (yaitu dengan SQL CREATE/INSERT, UPDATE , DELETE verbs, yaitu query yang tulis ke database bukan hanya baca untuk itu). Dalam beberapa kasus, dampak negatif indeks pada kueri "tulis" bisa sangat signifikan.
Alasan saya untuk secara khusus menekankan sifat indeks yang ambivalen adalah bahwa tampaknya aplikasi Anda melakukan cukup banyak pengumpulan data sebagai bagian normal dari operasinya, dan Anda perlu memperhatikan kemungkinan degradasi karena kueri INSERT dapat diperlambat . Alternatif yang mungkin adalah melakukan pengumpulan data ke dalam tabel/database yang relatif kecil, tanpa atau sangat sedikit indeks, dan secara teratur mengimpor data dari database input ini ke database tempat penambangan data aktual berlangsung. (Setelah diimpor, baris dapat dihapus dari "database input", menjaganya tetap kecil dan cepat untuk fungsi INSERT-nya.)
Kekhawatiran/pertanyaan lain adalah tentang lebar baris dalam tabel cor (jumlah kolom dan jumlah lebar kolom ini). Performa buruk dapat dikaitkan dengan fakta bahwa baris terlalu lebar, menghasilkan terlalu sedikit baris di simpul daun tabel, dan karenanya struktur pohon yang lebih dalam dari yang dibutuhkan.
Kembali ke indeks...
dilihat dari beberapa pertanyaan dalam pertanyaan, tampaknya Anda dapat mengambil manfaat dari indeks ip + note (indeks yang dibuat setidaknya dengan dua kunci ini dalam urutan ini). Analisis penuh dari situasi indeks, dan terus terang kemungkinan tinjauan skema database tidak dapat dilakukan di sini (tidak cukup info untuk satu ...) tetapi proses umum untuk melakukannya adalah membuat daftar kasus penggunaan yang paling umum dan untuk melihat indeks database mana yang dapat membantu kasus ini. Seseorang dapat mengumpulkan wawasan tentang bagaimana kueri tertentu ditangani, pada awalnya atau setelah indeks ditambahkan, dengan perintah mySQL EXPLAIN.
Normalisasi ATAU demoralisasi (atau memang kombinasi keduanya!), sering kali merupakan ide yang layak untuk meningkatkan kinerja selama operasi penambangan juga.