С более чем 10 миллионами учетных записей, как сайты проверяют так быстро, что имя пользователя не занято?

2

Как сайты ищут так быстро, если число записей > 10 миллионов?

Olle
Был приглашен:

Я сгенерировал текстовый файл с 10 миллионами строк, каждая строка длиной 6–32 символа. Это будет содержать наше «имя пользователя». Этот файл имеет размер 192 МБ.

Теперь, используя очень простой код на Python, я решил поискать в этом файле.

import mmap
f = open('username_list.txt')
s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
if s.find(b'wvdvajlo\n') != -1:
    print('true')

Запуск этой программы занимает:

bash-5.0$ time python3 test.py
true
real    0m0.997s
user    0m0.369s
sys     0m0.109s

Это был первый раз, когда файл был открыт после записи, поэтому ядро ​​не кэшировало этот файл должным образом. Последующие запуски, занимают меньше времени, около 0,4 секунды.

Итак, вот итог. Десять миллионов имен пользователей - это не так много, чтобы искать с современным оборудованием.

Надлежащий поиск или использование базы данных сократил бы это время поиска на десять, если не на сто крат.

Более крупные сайты, такие как Facebook с > 1,5 миллиардами пользователей, - это те, которые должны начать разработку специальных решений. Они кешируют и т.д.

Но с 10 миллионами пользователей это действительно не проблема.

Для ответа, вы можете войти или зарегистрироваться...