How to optimize ORDER BY RANDOM()

SELECT * FROM repositories ORDER BY RANDOM() LIMIT 3

It is slow on big data.

Implementation

The following solution is built for PostgreSQL, but can be easily applied to any other database.

ALTER TABLE repositories ADD COLUMN randomness point;
UPDATE opendor SET randomness = point(random(), random());
CREATE INDEX repositories_randomness on repositories using spgist(randomness);
SELECT * FROM repositories ORDER BY randomness <-> point(0.753,0.294) LIMIT 3;

Front-end. Вопросы на собеседовании

Репозитории видеокаста, содержит коллекцию вопросов, которые можно получить на техническом собеседовании на вакансию Junior/Middle Front-end разработчик. Плейлист будет интересен не только кандидатам, так как поможет быстро подготовиться к интервью, повторив все необходимые темы. Но так же и техническим специалистам, которые проводят интервью, поскольку содержит большой сборник вопросов по всем основным блокам. Все вопросы сформулированы максимально корректно, что бы не запутать кандидата. А ответы подробны и максимально лаконичны, что бы не тратить много времени на подготовку.

Ещё больше полезной информации можно найти на YouTube канале

https://github.com/YauhenKavalchuk/interview-questions

Scroll Up