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

Sampel Acak Sederhana dari database Sql

Saya pikir solusi tercepat adalah

select * from table where rand() <= .3

Inilah mengapa saya pikir ini harus melakukan pekerjaan.

  • Ini akan membuat nomor acak untuk setiap baris. Angkanya antara 0 dan 1
  • Ini mengevaluasi apakah akan menampilkan baris tersebut jika angka yang dihasilkan antara 0 dan .3 (30%).

Ini mengasumsikan bahwa Rand() menghasilkan angka dalam distribusi seragam. Ini adalah cara tercepat untuk melakukannya.

Saya melihat seseorang telah merekomendasikan solusi itu dan mereka ditembak jatuh tanpa bukti.. inilah yang akan saya katakan untuk itu -

  • Ini adalah O(n) tetapi tidak diperlukan penyortiran sehingga lebih cepat daripada O(n lg n)
  • mysql sangat mampu menghasilkan angka acak untuk setiap baris. Coba ini -

    pilih rand() dari INFORMATION_SCHEMA.TABLES batas 10;

Karena database yang dimaksud adalah mySQL, ini adalah solusi yang tepat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemulihan Penuh Cluster MySQL atau MariaDB Galera dari Cadangan

  2. Hubungkan Java ke database MySQL

  3. Hitung persentil dari keterkinian di MySQL

  4. Praktik penyatuan koneksi JDBC MySql untuk menghindari kumpulan koneksi yang habis

  5. Cara mengimpor dan mengekspor database MySQL