рандомизация большого набора данных
Я пытаюсь найти способ получить случайный выбор из большого набора данных.
Мы ожидаем, что набор вырастет до ~ 500K записей, поэтому важно найти способ, который будет продолжать работать хорошо, пока набор растет.
Я попробовал технику из:http://forums.mysql.com/read.php?24,163940,262235#msg-262235 Но это не совсем случайно, и это не очень хорошо сLIMIT
пункт, вы не всегда получаете количество записей, которые вы хотите.
Поэтому я подумал, что поскольку PK - это auto_increment, я просто генерирую список случайных идентификаторов и использую предложение IN, чтобы выбрать нужные мне строки. Проблема с этим подходом состоит в том, что иногда мне нужен случайный набор данных с записями, имеющими специфический статус, статус, который находится не более чем в 5% от общего набора. Чтобы это работало, мне сначала нужно выяснить, какие у меняМожно используйте, которые имеют этот определенный статус, так что это тоже не сработает.
Я использую MySQL 5.1.46, механизм хранения MyISAM.
Может быть важно знать, что запрос на выбор случайных строк будет выполняться очень часто, и таблица, из которой он выбирает, часто добавляется.
Любая помощь будет принята с благодарностью!