Mysql
 sql >> база данни >  >> RDS >> Mysql

Прости произволни извадки от Sql база данни

Мисля, че най-бързото решение е

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

Ето защо смятам, че това трябва да свърши работа.

  • Ще създаде произволно число за всеки ред. Числото е между 0 и 1
  • Оценява дали да се покаже този ред, ако генерираното число е между 0 и .3 (30%).

Това предполага, че rand() генерира числа в равномерно разпределение. Това е най-бързият начин да направите това.

Видях, че някой е препоръчал това решение и са го свалили без доказателство.. ето какво бих казал на това -

  • Това е O(n), но не се изисква сортиране, така че е по-бързо от O(n lg n)
  • mysql е много способен да генерира произволни числа за всеки ред. Опитайте това -

    изберете rand() от INFORMATION_SCHEMA.TABLES ограничение 10;

Тъй като въпросната база данни е mySQL, това е правилното решение.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Настройте база данни и създайте потребител само за четене в AWS Redshift и Mysql

  2. MySQL:@променлива срещу променлива. Каква е разликата?

  3. MySQL:Как да разрешите отдалечена връзка с mysql

  4. Синтаксис на SQL ALTER DATABASE – Изброен от СУБД

  5. MySQLDumper:Базиран на PHP и Perl инструмент за архивиране на MySQL база данни