Rumah  >  Soal Jawab  >  teks badan

java - Soalan tentang kunci utama jadual

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

过去多啦不再A梦过去多啦不再A梦2712 hari yang lalu636

membalas semua(4)saya akan balas

  • 習慣沉默

    習慣沉默2017-05-17 10:00:34

    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.

    balas
    0
  • PHP中文网

    PHP中文网2017-05-17 10:00:34

    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

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-17 10:00:34

    uuid menyokong sub-perpustakaan

    balas
    0
  • 習慣沉默

    習慣沉默2017-05-17 10:00:34

    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

    balas
    0
  • Batalbalas