Anda boleh melihat bahawa data dalam jadual diisih mengikut nama keluarga Ini kerana terdapat indeks berbilang lajur pada nama keluarga, nama keluarga, bandar dan kunci utama (indeks) pada id pengguna ditambahkan kemudian, jadi id pengguna tidak tertib. .
Adakah terdapat cara untuk menjana semula (atau menyusun) indeks dalam MySQL supaya hasil pertanyaan pernyataan "pilih id pengguna, nama akhir daripada pengguna" diisih mengikut id pengguna secara lalai?
Nota: Daripada memaksa penggunaan indeks, pilih id pengguna, nama akhir, daripada indeks daya pengguna (utama), jana semula atau susun indeks (susun semula).
Dikemas kini pada 29 April
Sebenarnya, saya ingin bertanya sama ada terdapat arahan dalam mysql yang boleh menyusun semula indeks yang sedia ada dalam jadual, iaitu selepas jadual dikemas kini, dipadam, dan dimasukkan untuk satu tempoh masa, data akan berubah (. struktur kekal tidak berubah) ), maka indeks jadual akan mengalami pelbagai perubahan sewajarnya (seperti pemecahan asas, dll.), jadi adakah cara untuk menyusun semula atau menjana semula indeks ini, jika tidak, indeks hanya boleh dipadamkan dan dibina semula.
Dikemas kini pada 2 Mei
Saya menambahkan coretan pada soalan asal Terdapat beberapa masalah dengan soalan awal, terutamanya penerangan di sini adalah salah: "Anda dapat melihat bahawa data dalam jadual diisih mengikut nama keluarga. Ini. Ini kerana terdapat indeks berbilang lajur pada nama keluarga, nama keluarga, bandar dan kunci utama (indeks) pada id pengguna ditambahkan kemudian, jadi id pengguna tidak disusun Anda boleh melihat bahawa data dalam jadual diisih mengikut nama akhir adalah kerana dalam nama akhir , terdapat indeks berbilang lajur pada nama keluarga, bandar dan kunci utama (indeks) pada id pengguna ditambahkan kemudian, jadi id pengguna tidak tertib." Mengenai mengapa ia tidak tertib, @clcx_1315 telah pun menjawab, dan beliau juga menegaskan bahawa walaupun Untuk menyusun semula (menjana) indeks, ayat ini pilih userid, nama akhir daripada pengguna tidak boleh mencapai susunan userid. Saya mencari Baidu, dan nampaknya tiada arahan khusus digunakan untuk menjana semula atau mengatur indeks dalam MySQL, tetapi terdapat arahan dalam pangkalan data SQL Server Jika anda berminat, sila Baidu.
mysql mempunyai penggunaan jadual optimum, tetapi ia juga menyusun semula jadual pada masa yang sama.
Jika sistem mempunyai tempoh puncak perniagaan yang jelas, ia juga mungkin untuk memadamkan indeks dan membinanya semula.
Situasi ini adalah kerana lajur lain di luar kunci utama anda ialah indeks komposit Apabila anda membuat pertanyaan, mysql akan terus ke jadual indeks untuk mencari semua data anda (indeks biasa mysql innodb akan menyimpan maklumat kunci utama bersama-sama) , jadi Ia diisih dan diambil mengikut medan pertama indeks anda Ia tidak membaca keseluruhan jadual dalam susunan yang dimasukkan ke dalam cakera, tetapi kunci utama ditambah dalam susunan yang dimasukkan ke dalam cakera, jadi ia berurutan pada. cakera, tetapi apabila anda membacanya, Jadual indeks akan terputus
Jika anda ingin menukar keadaan ini, ia akan menjadi sama jika anda membina semula jadual itu masih akan diisih mengikut indeks nama keluarga, melainkan anda memasukkannya dalam susunan nama keluarga
Cara lain ialah menambah medan Untuk lebihan, apabila anda memilih keseluruhan jadual, anda tidak akan menggunakan pertanyaan indeks penutup anda tetapi imbasan jadual penuh Sudah tentu, kunci utama akan disusun secara berurutan.
Saya ingat bahawa mysql juga akan membina semula indeks secara automatik berdasarkan situasi indeks anda, tetapi tiada apa yang ditemui secara khusus.
Serahkan pada yang ditakdirkan untuk menjawab