Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Membuat kode unik di PHP/MySQL?

Jika Anda membutuhkan sekitar 10 juta kunci unik (misalnya), pendekatan terbaik adalah memilih ruang kunci yang secara eksponensial lebih besar, dan mulai menghasilkan secara acak. Baca tentang Paradoks Ulang Tahun -- itu adalah hal utama yang harus Anda khawatirkan. Jika Anda menginginkan 2^n kunci unik dan aman, pastikan setidaknya ada 2^(2 * n) nilai yang memungkinkan. Berikut algoritma kasar O(n log n):

  • Gunakan ruang kunci minimal 2^50 (jadi, dengan kata lain, izinkan 2^50 kemungkinan nilai unik), dan Anda hampir tidak akan mengalami tabrakan di seluruh kumpulan data -- dan siapa pun yang memaksa kunci Anda secara kasar akan memiliki peluang genap untuk mendapatkan kunci jika mereka mencoba 2^25 kunci.
  • menghasilkan angka acak sebanyak yang Anda butuhkan
  • indeks database pada kunci Anda (ini adalah langkah O(n lg n):pengurutan)
  • laman melalui DB dan ulangi seluruh kumpulan data untuk memangkas duplikat (kode semu di bawah)
  • Hapus baris duplikat, dan selesai.

Kode semu:

$last = null;
while ($current = getnext()) {
    if ($last == $current) {
        push($toDelete, $current);
    }
    $last = $current;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah utas mysql_insert_id aman?

  2. Cara mendapatkan sertifikat Amazon MySQL RDS

  3. Memperbarui Database dari Javascript dengan memanggil skrip PHP

  4. Bagaimana cara menentukan bidang kueri induk dari dalam subkueri di MySQL?

  5. Mengonversi string ke tipe DECIMAL mySql