Выявление пробелов - интересная проблема. Наилучший подход будет зависеть от размера пробела, но здесь есть другой способ его устранения, который может быть лучше, если пробелы достаточно велики по сравнению с количеством записей, которые у вас есть.
Используйте функцию агрегации MySQL в запросе для подсчета количества записей для набора сегментов. По размеру сегменты должны быть похожи на те виды пробелов, которые вас интересуют. Предполагая, что вас интересуют пропуски, приближающиеся к дню или около того, я бы сделал что-то вроде этого:
SELECT TO_DAYS(my_timestamp), COUNT(*)
FROM my_table
GROUP BY TO_DAYS(my_timestamp)
Это вернет связь между днями и временем. Я бы сделал все остальное на языке, таком как Perl или Java (или даже R, см. Позже), где я могу обрабатывать данные.
Техника, которую я бы использовал, была бы проверкой разницы между наблюдаемой частотой (количеством) и ожидаемой частотой, которая будет представлять собой общее количество записей, деленное на дневной диапазон. Ожидаемая частота для каждого дня будет примерно такой:
SELECT (SELECT COUNT(*) FROM my_table) /
((SELECT TO_DAYS(MAX(my_timestamp)) FROM my_table) -
(SELECT TO_DAYS(MIN(my_timestamp)) FROM my_table) + 1)
Теперь для каждого сегмента (помня, что в первом результате полностью пропущенные дни будут просто не возвращаться, а не возвращаться как счетчик нуля - вам нужно рассматривать их, как если бы они были равны нулю, вы можете использовать статистический test, критерий хи-квадрат, для оценки вероятности того, что это шанс (подробнее см. http://en.wikipedia.org/wiki/Pearson%27s_chi-square_test). Расчет, в основном ((ожидаемый - наблюдаемый) ^ 2 / ожидаемый). Это оценка вероятность отклонения.
Если вам необходимо выяснить, какие сегменты имеют низкое значение в выборках, установите разумное пороговое значение для этого вычисленного значения и найдите сегменты, в которых значение превышает пороговое значение. Может потребоваться небольшой эксперимент, чтобы найти подходящее значение, но это разумный способ определения пробелов.