mysql база 20 000 000 записей

12
[Удален]
1933

Привет всем! Возникла необходимость вывести на сайте архив походных данных на нескольких языках за несколько лет. Есть 20 000 000 записей в нескольких файлах.

Каждая строка ето: место-погода-погода на английском-погода на немецком-на французском-..-на албанском.

Как мне вывести ето все на сайте, что бы с минимумом тормозов и нагрузки? может как то хитро загнать в базу ето все? тогда как базу организовать? какие поля и как вообще все ето делается?

Может в файлах хранить? разбить весь архив по датам и местам? А как тогда выводить? какую навигацию делать?

LEOnidUKG
На сайте с 25.11.2006
Offline
1771
#1

Забейте всё в БД, проставьте индексы и будет вам счастья.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
R
На сайте с 03.04.2008
Offline
90
#2

без проблем будет работать если выборки не планируются сложные по массиву - у меня в одном проекте база 18 000 000 - работает без особых проблем с нагрузкой

ICQ: 577-662-540 продвижение сайтов за еду (/ru/forum/480944) продвину Ваш сайт за 3000/мес. Портфолио по запросу
sir_Jack
На сайте с 04.04.2009
Offline
37
#3

зависит от того как будете выводить.

составьте все варианты вывода данных (по какому параметру) - после этого продумывайте структуру БД.

ну и добавляйте индексы к тем полям которые в запросе участвовать будут.

Возможно будет иметь смысл сделать несколько таблиц по категориям запросов (по языку например)

Ваши данные - Вам виднее :)

[Удален]
#4

Вы кто либо пробовали делать запрос SELECT data WHERE id = 15 000 000 ?Сколько он по времени займет знаете?

[umka]
На сайте с 25.05.2008
Offline
456
#5
mmtgas:
Вы кто либо пробовали делать запрос SELECT data WHERE id = 15 000 000 ?Сколько он по времени займет знаете?

Если есть индекс на id и сервер не на пентиум-133, то миллисекунды.

p.s. И величина id тут вообще ни при чём

Лог в помощь!
SD
На сайте с 08.12.2011
Offline
5
#6
[umka:
;9810366]И величина id тут вообще ни при чём

присоединяюсь, индексы рулят. 20кк далеко не предел, я работал и с несколькотеррабайтными БД и ничего, главное грамотно продумать структуру(в вашем случае - очевидно), поставить индексы и наслаждаться

[Удален]
#7

Да, индексы ето чудо! Все выводится моментально, вот только пришлось сменить в запросах limit на условие больше start и меньше start+10 иначе лимит- тормозит страшно

palladin_jedi
На сайте с 13.07.2010
Offline
71
#8
mmtgas:
вот только пришлось сменить в запросах limit на условие больше start и меньше start+10 иначе лимит- тормозит страшно

А что было раньше? Вы делали выборку без лимитов и условий? :)

Сайт о web-разработке и прочем (http://seazo.net)||Продвижение статьями под Google (http://short.seazo.net/ght4zf) Бесплатные консультации рефералам Sape (http://www.sape.ru/r.SWfwWOblBo.php) PHP и JS скрипты на заказ, создание сайтов с нуля и на CMS.
P
На сайте с 25.10.2009
Offline
24
#9

Если данные в базу добавляются редко, то лучше избавиться от множества WHERE а тем более SORT BY и еще хуже GROUP BY

Настройте вывод результата в отдельную таблицу,можно и через крон, потом забирайте оттуда результат когда нужно и индексы не понадобятся.

Господа, не смыслящие, но любящие тупо голосовать. Пожалуйста отведите душу. Слева у комментария есть кнопка, тупо жмите занизить Prishelec(у) репутацию. \@,@/
LEOnidUKG
На сайте с 25.11.2006
Offline
1771
#10
на условие больше start и меньше start+10 иначе лимит

Ну если память сервера позволяет, то почему бы и нет.

У меня в комментах так делается. Это позволяет закэшировать запрос.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий