1. Masalah set pengekodan lalai
Apabila memaparkan data bahagian hadapan, semua pilihan * daripada t_news boleh ditemui Semua kandungan. Kemudian ia tidak akan berfungsi apabila membuat parameter pertanyaan. Contohnya:
Pilih * daripada t_news di mana tajuk seperti ‘%Source Code Education%’ ditemui;
Pilih * daripada t_news di mana id = 1. 1 keping data ditemui.
Perhatikan medan yang ditandakan dengan warna merah Ini selepas saya mengubah suainya pada asalnya.
Penyelesaian:
Fail konfigurasi MySQL di bawah Windows ialah my.ini, yang biasanya terdapat dalam direktori akar direktori pemasangan.
Fail konfigurasi MySQL di bawah Linux ialah my.cnf, yang biasanya diletakkan dalam /etc/my.cnf, /etc/mysql/my.cnf. Jika anda tidak menemuinya, anda boleh menggunakan arahan find untuk mencarinya.
Buka my.ini/my.cnf dan ubah suai dua medan berikut.
Ps: Anda perlu memulakan semula mysql selepas mengubah suai fail konfigurasi.
2. Data tidak digulung semula
Semasa pengaturcaraan, spring mengkonfigurasi transaksi, tetapi apabila pengecualian berlaku, data dalam pangkalan data masih berubah. Selepas mengesahkan bahawa tiada masalah dengan transaksi dan konfigurasi kod, kami mempertimbangkan kemungkinan untuk mengkhususkan pangkalan data. Kami menggunakan alat "Navicat" untuk mereka bentuk jadual Dalam lajur "Pilihan" kami mendapati bahawa enjin storan yang digunakan oleh jadual adalah MyISAM.
MyISAM tidak menyokong transaksi Rollback akan menyebabkan rollback tidak lengkap dan bukan atomic.
Tukar MyISAM kepada InnoDB.
Terdapat juga enjin storan lalai dalam fail konfigurasi MySQL (my.ini). Jika tiada pernyataan khas semasa membuat jadual, enjin storan lalai akan digunakan.
3. Optimumkan pengimportan sejumlah besar data
Dalam kerja kami, kami pasti akan menghadapi situasi mengimport sejumlah besar data. Contohnya, anda perlu menanyakan data yang disandarkan sebelum ini, mengimport data sebenar secara setempat untuk ujian, kerap mengimport data ke dalam pangkalan data sandaran dan senario perniagaan lain.
MySQL menyediakan kaedah import untuk memuatkan data dalam fail. Walau bagaimanapun, konfigurasi yang tidak betul juga akan menyebabkan kelajuan import yang perlahan.
Penyelesaian:
Naikkan nilai parameter berikut, biasanya 80% daripada memori fizikal. Tetapi sistem 32-bit akan dihadkan kepada 2-3.5G.
4 Dayakan fungsi fungsi tersuai (pangkalan data awan)
Kadang-kadang apabila kami menjalankan kod orang lain, atau semasa memindahkan pelayan, kami mungkin menemui pangkalan data yang ditakrifkan sebelumnya. tidak boleh digunakan. Terutamanya dengan pangkalan data, fungsi fungsi tidak didayakan secara lalai, menyebabkan fungsi tidak dapat dilaksanakan.
Mula-mula kita semak sama ada fungsi itu didayakan. Seperti yang ditunjukkan di bawah:
Fungsi tersuai di sini dimatikan secara lalai.
Penyelesaian: Gunakan "set global log_bin_trust_function_creators = 1;" untuk mendayakan fungsi fungsi tersuai.
Soal semula:
Tetapi kaedah ini hanyalah penyelesaian sementara Selepas MySQL dimulakan semula, fungsi tersebut akan dimatikan secara lalai.
Untuk mendayakan fungsi fungsi tersuai secara kekal, anda perlu menambah "log-bin-trust-function-creators=1" pada fail konfigurasi.
5. Isu nama jadual dalam persekitaran Linux
Dalam persekitaran sistem Linux, nama jadual MySQL adalah sensitif huruf besar secara lalai. Kadangkala jika huruf besar dimasukkan dengan salah dalam nama jadual, pertanyaan tidak dapat ditemui.
Penyelesaian: Tambahkan "lower_case_table_names=1" di hujung fail konfigurasi my.cnf. Kemudian mulakan semula MySQL.
"lower_case_table_names=1" bermaksud memaksa pernyataan input kepada huruf kecil dan kemudian laksanakan pernyataan.