Я работаю над проектом, в котором нам нужно сделать IP Address lookups
. Поэтому для этого у нас есть наборы данных, и теперь следующие шаги - заполнить эти наборы данных в таблице. И затем выполните некоторые настройки службы, которые будут принимать IP Address as an input
, а затем найдите базу данных по адресу IP Address
. Так ниже набор данных будет выглядеть как-Схема таблицы для поиска по IP-адресу
ip_address country region city metro-code latitude longitude postal-code country-code region-code city-code continent-code country-code
24.32.116.116 usa tx clarksville 623 33.6103 -95.0498 75426 840 44 34918 6 us
65.29.108.232 usa mi novi 505 42.4637 -83.4604 48375 840 23 4339 6 us
66.169.99.69 usa tx ft worth 623 32.7016 -97.3823 76109 840 44 771 6 us
72.70.100.111 usa ma peabody 506 42.5332 -70.9726 1960 840 22 1392 6 us
174.252.116.137 usa va oakton 511 38.8892 -77.3222 22124 840 47 3860 6 us
68.55.144.242 usa md pasadena 512 39.1276 -76.5125 21122 840 21 4358 6 us
174.252.83.27 usa pa lancaster 566 40.0459 -76.3542 17603 840 39 333 6 us
174.78.192.31 usa ga warner robins 503 32.5958 -83.6384 31088 840 11 5052 6 us
98.192.146.235 usa fl panama city 656 30.1804 -85.5598 32404 840 10 671 6 us
71.192.181.20 usa ma springfield 543 42.1187 -72.5483 1109 840 22 967 6 us
76.183.54.227 usa tx dallas 623 32.7202 -96.6769 75217 840 44 77 6 us
69.62.143.140 usa ca granite bay 862 38.7442 -121.191 95746 840 5 49451 6 us
69.142.76.32 usa nj penns grove 504 39.707 -75.4467 8069 840 31 2335 6 us
70.173.54.93 usa nv las vegas 839 36.2059 -115.225 89108 840 29 173 6 us
98.242.8.222 usa ca fresno 866 36.7968 -119.883 93722 840 5 19 6 us
Постановка задачи: -
Мы ожидаем, что трафик вокруг 100 Millions calls
в день за IP Address lookup
.
И этот набор данных будет иметь мировые наборы данных, что означает для всех стран. И мы планируем хранить эти наборы данных в MySql database
, который находится здесь In Memory Database
.
Теперь мой вопрос в том, должен ли я создать только single table
с вышеупомянутыми столбцами? Или я должен нормализовать таблицу выше на две или три? И мне нужно создать индекс для любых столбцов, если таковые имеются.?
В основном я пытаюсь понять, как настроить схему для этой таблицы, чтобы поиск не занимал много времени с трафиком, который мы ожидаем. И наша служба, которая будет выполнять поиск, должна быстро вернуть ответ.
Помимо количества звонков (100 миллионов в день? Действительно?). Сколько IP-адресов вы планируете хранить? Все 4+ миллиарда? Потому что это тоже проблема. – Cfreak
Да, это текущий трафик, который у нас есть на нашем существующем сервисе. Я не знаю, будет ли 4 миллиарда IP или нет. Потому что я собираюсь получить этот набор данных геолокации от «одного из поставщиков данных географических данных, таких как Maxmind». И когда я спрашиваю их, что будет размером с наборами данных. Они сказали, что это будет около 40 ГБ. – ferhan
Чтобы ответить на ваш вопрос, вам обязательно понадобятся индексы. Но одна таблица или несколько я не думаю, что MySQL будет хорошим решением для этого в любом случае с точки зрения производительности – Cfreak