java - Soalan tentang kunci utama jadual
过去多啦不再A梦
过去多啦不再A梦 2017-05-17 09:58:34
0
4
662

Kebanyakan kunci utama hendaklah hanya integer (auto-naik) atau kod unik yang dijana oleh sistem (seperti UUID);

过去多啦不再A梦
过去多啦不再A梦

membalas semua(4)
習慣沉默

ID penambahan automatik menjimatkan ruang storan, dan indeks kunci utama tidak mempunyai masalah memasukkan dan menyusun semula Kelemahannya ialah jumlah data adalah terhad, dan maksimum 2^63 rekod boleh disimpan.
uuid biasanya rentetan, yang menggunakan lebih banyak ruang storan daripada integer, dan memerlukan penyusunan semula indeks semasa pemasukan. Pada dasarnya, tiada had atas kuantiti.

Ty80

Jenis integer (indeks mysql disimpan dalam bentuk fail, jadi jenis integer mestilah lebih kecil daripada UUID), dan kerana ia adalah jenis integer, kecekapan indeks mesti lebih tinggi daripada UUID, tetapi kerana ia meningkat secara automatik, mysql akan Apabila memasukkan data, jadual mesti dikunci, yang menyebabkan overhed yang besar pada pelayan MySQL di bawah sejumlah besar concurrency. Dan UUID adalah lebih baik daripada integer auto-increment dalam mengendalikan concurrency

淡淡烟草味

uuid menyokong sub-perpustakaan

習慣沉默

Apabila medan adalah kunci utama, jenis integer menjimatkan ruang daripada jenis rentetan (anda harus ingat bahawa int hanya memerlukan 4 bait, dan char mempunyai satu bait setiap aksara)
Apabila medan itu bukan kunci utama, sebagai tambahan kepada menjimatkan ruang, jenis integer menjimatkan lebih banyak ruang daripada jenis rentetan Jenisnya lebih cepat, dan ia tumbuh secara geometri mengikut panjang aksara

Bagi mereka yang mengejar kesempurnaan, data seperti alamat IP juga disimpan dalam pangkalan data menggunakan integer (rentetan alamat IP dan integer mempunyai algoritma tetap).

Sebagai contoh; jika nilai medan ialah 1234567890 dan tiada kunci utama
Apabila melakukan pertanyaan sql di mana id >= '1234567890'
jenis int hanya perlu dibandingkan sekali
jenis char perlu dibandingkan 10 kali, setiap satu watak Setiap orang perlu mengambil bahagian dalam perbandingan. Jadi semakin panjang watak, semakin perlahan kelajuannya

Jika jumlah data dalam pangkalan data cukup besar, anda boleh menyemak kelajuan pemprosesan jenis char dengan mudah dengan melaksanakan SQL yang serupa
di mana id seperti '123%' had 5;
di mana id seperti '1234%' had 5;
di mana id suka '12345%' had 5;
di mana id suka '123456%' had 5;
Kelajuan pelaksanaan SQL di atas lebih perlahan pula. Kerana semakin panjang watak, semakin banyak masa mereka dibandingkan.

Tidak kira panjang jenis int, ia hanya membandingkan sekali

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan