powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Большая база и частые запросы
20 сообщений из 20, страница 1 из 1
Большая база и частые запросы
    #38657925
useruser11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые форумчане!
Я бы хотел поинтересоваться, насчёт возможностей Mysql. Провести эксперимент пока трудно. Но позже всё обязательно проверю.

Ситуация такая.
Есть скрипт, который записывает /insert/ в БД Mysql данные каждую секунду.
Данные - 70 двузначных чисел. То есть в БД есть таблица с 71 колонкой - id и 70 колонок под эти числа.

Есть скрипт, который выводит данные по запросу пользователя - эти 70 чисел. Выбрать первую запись /select * from base where id=1/, тридцатую запись и т.д.


Вопрос такой - через какое время лопнет Mysql или накроется сервер? От перегрузки, от переполнения и так далее. А может чем больше размер БД, тем больше ресурсов использует сервер (сам не верю, ну а вдруг)?
Место на диске под БД не ограничено.

Или такая ситуация в принципе невозможна? И вне зависимости от количества записей в БД, её размера - не будет существенного снижения быстродействия?

И ещё вопрос - как будет работать скрипт , который выводит данные по запросу пользователя -/select from base/ если БД огромна и там 10 миллионов записей?

Вот такие вопросы. С огромными БД не работал.
Записей в БД действительности будет около 40 миллионов, а может и больше.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38657963
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useruser11, через соответствующее время лопнет mysql. неужели не понятно ?
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658081
useruser11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwind,
В интернете пишут, что обычный лимит у myisam-таблиц 2^32 то есть 4 миллиарда записей. В теории.
И БД в среднем достигает 2ГБ. А максимальный размер 4.

У меня будет 60 записей в минуту -это около 32 миллионов записей в год. В ограничение 4 миллиарда укладываюсь.
Размер базы, исходя из моих данных 140 мб. (не уверен, но должно быть так) В ограничение 4 ГБ укладываюсь.
Я даже близко не подошел к теоретическим ограничениям.

Почему БД или сервер должны стать неработоспособными, существенно замедлить свою работу?
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658116
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useruser11,
работа с диском - основной тормоз
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658119
useruser11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя, что вы этим хотели сказать?
Базы данных располагаются на диске. Что мускул, что инно, что оракл.
Базы данных созданы для хранения множества данных и быстрого доступа к ним.
Ваше утверждение не имеет смысла т.к. любая база, ОС, сервис или скрипт, физически размещён на диске.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658121
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зависит от разных факторов:

Как эти данные планируется стирать? Какие индексы? Сколько памяти выделено под индексы? Как часто и какие делаются селекты?

Возможно, вам следут обратить внимание на RRD-подобные базы данных, т.к. mysql подходит не для всего.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658122
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useruser11любая база, ... физически размещён на диске.Вовсе нет, не любая.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658123
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useruser11лопнет Mysql или накроется сервер?Ни того, ни другого не бывает.
Лопнуть может терпение у пользователей и по этой причине накрыться ваша премия на работе.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658125
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useruser11В интернете пишут, что обычный лимит у myisam-таблиц 2^32 то есть 4 миллиарда записей. В теории.Неверно. Даже в теории. И читать нужно не "в интернете", а в документации - Limits on Table Size

useruser11И БД в среднем достигает 2ГБ. А максимальный размер 4.На размер БД нет ограничения. См. Limits on Number of Databases and Tables .

Ну, если кратко, ваши 40 миллионов записей - не так уж и много. Возможно, даже в оперативку целиком влезет.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658127
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА максимальный размер 4.
он про старый FAT прочитал наверно.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658128
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторА максимальный размер 4.
он про старый FAT прочитал наверно.Даже в старом FAT-е в MyISAM нет ограничения на размер БД.
На таблицу - есть, но не на БД.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658135
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useruser11Или такая ситуация в принципе невозможна? И вне зависимости от количества записей в БД, её размера - не будет существенного снижения быстродействия?

Существенное снижение быстродействия начнется когда начнет нехватать внутрених кэшей для индексов и данных и понадобится читать их с диска, хотя это тоже может зависеть от типа таблиц. Но вцелом это решается наращиванием памяти до необходимого значения, и подправкой mysql-конфигов.


useruser11И ещё вопрос - как будет работать скрипт, который выводит данные по запросу пользователя -/select from base/ если БД огромна и там 10 миллионов записей?

10млн записей это не много, и если выбирается только 1 запись, или смежные записи, то большинство таких запросов можно ожидать, что, будут работать быстро.

useruser11Вот такие вопросы. С огромными БД не работал.
Записей в БД действительности будет около 40 миллионов, а может и больше.

Ну так набиваете базу случайными данными, пишите прожку, которая делает эти инсерты, старое стирает. И которая делает селекты. И смотрите, как оно работает.


Но повторюсь: если у вас эти 70 чисел - это что-то типа данных с 70 термометров (или других датчиков), которые приходят с определенным периодом, то как правило mysql - это далеко не самое лучшее решение. Лучше смотреть на RRD или даже писать свои велосипеды. Это я говорю как человек, которому в итоге пришлось податься в велосипедостроение, и достичь гораздо более лучших результатов.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658163
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useruser11, вы вообще не понимаете как работает sql. но это нормально! потому sql он создан специально чтобы вы этого не понимали !
sql формулирует КАКИЕ данные вы хотите получать, но при этом оставляет свободным способ их получения - план работы запроса.
Некоторое время программист может использовать sql, но однажды этот вопрос встает ребром.И вот тут уже придется изучать индексы, планы, реальные характеристики железа, чтобы осознать утверждение "работа с диском - основной тормоз".

Даже если вы во всем это разберетесь, точно спрогнозировать возможности своей системы, вряд ли сможете.
Однако сможете куда-то двигаться и использовать нагрузочное тестирование.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658244
useruser11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.
Уточню - данные не удаляются. Нужны данные за прошлый месяц, год. Но можно сделать с ожиданием.
В 90% случаев - выборка select -это смежные значения.

Сейчас вижу такие варианты решения
Вопрос в "маштабе".

1 Вариант
Хранить все данные за год в одной базе. Каждый год создавать новую базу.
1 база, 1 таблица с данными - всего 31 104 000 строк.

2 Вариант
Хранить все данные за год в одной базе. Каждый год создавать новую базу.
Хранить все данные за текущий месяц в одной таблице. Каждый месяц создавать новую таблицу.
1 база, 12 таблиц с данными - всего 31 104 000 строк, в каждой таблице 2 592 000 строк

3 Вариант
Хранить все данные за месяц в одной базе. Каждый месяц создавать новую базу.
1 база, 1 таблица с данными - всего 2 592 000 строк.

4 Вариант
Хранить все данные за месяц в одной базе. Каждый месяц создавать новую базу.
Хранить все данные за текущий день в одной таблице. Каждый день создавать новую таблицу.
1 база, 365 таблиц с данными - всего 2 592 000 строк, в каждой таблице 86 400 строк.

Какой из вариантов лучше?
И в принципе, соседство большой базы (пусть с 40 млн строк и размером 2Гб) с другой базой влияет на работу-быстродействие другой базы?
Если большая база лежит "мёртвым грузом" и к ней нет обращения. А с другой базой идёт работа.

PS
chabapok, вы правы. Но на данном этапе я не могу писать велосипеды.
И насчёт программы вы правы. Но сначала, перед тестами, надо понять какой вариант тестировать. Иначе тесты может не хватить времени.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658370
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useruser11Спасибо за ответы.
Уточню - данные не удаляются. Нужны данные за прошлый месяц, год. Но можно сделать с ожиданием.
В 90% случаев - выборка select -это смежные значения.

Так а вы сделайте чтобы удалялись.
Если бы вы все-таки начали смотреть на rrdtools, то обнаружили бы, что там навязывают предагрегацию - данные за прошлый месяц хранятся, но интервал суммируется и хранится уже сумма за каждый день, например.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658529
useruser11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwind,
"rrdtools, то обнаружили бы, что там навязывают предагрегацию - данные за прошлый месяц хранятся, но интервал суммируется и хранится уже сумма за каждый день, например." - это что-то сложное.
Погуглил - Цитата из интернета
--
RRD – это кольцевая база данных. Главная особенность данной БД заключается в том, что она всегда имеет фиксированный размер. То есть когда, будет достигнут конец в каком-нибудь поле в такой БД, то данные будут записываться в самое начало, тем самым, затирая предыдущие.
--
Мне нужны все данные. Никакие данные не должны быть стёрты.
Работа в 90% случаев, будет производится с последними данными, записями. Но иногда нужно просмотреть "архив".
Выгружать "архив" в файл по принципу дампа - плохой вариант. Желательно всё хранить в базе.

Пока, я хочу сделать всё проще.
Скорее всего, сделаю по четвёртому варианту

4 Вариант
Хранить все данные за месяц в одной базе. Каждый месяц создавать новую базу.
Хранить все данные за текущий день в одной таблице. Каждый день создавать новую таблицу.
1 база, 365 таблиц с данными - всего 2 592 000 строк, в каждой таблице 86 400 строк.

Зачем усложнять задачу на данном этапе, когда этот вариант не вызовет проблем? Ведь не вызовет? :-)
Для начала мне нужно минимум проблем-глюков, лагов. И простая структура базы.

А когда понадобится что-то большее, специфическое- то я возможно сменю базу.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38658755
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКакой из вариантов лучше?
хранить все данные в одной базе. подумать о партиционировании. хотя сомневаюсь что оно вам надо.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38659004
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useruser11, я не предлагал использовать rrdtools. я предлагал посмотреть на него и сделать подобное в mysql, из-за того что что еще один человек вам это предлагал и это выглядит убедительнее.
там важно не то что данные стираются, а то как они объединяются.


Кстати, требования какого федерального закона запрещают вам удалять данные ?
Если такового нет, значит вы всегда можете это изменить и найти компромисс между стоимостью. А то вы как-то нетипично размышляете. Mysql-то все выдержит! вопрос на самом деле в том, сколько ваш кошелек выдержит.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38659125
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, предагрегация в rrdtool - штука настраиваемая. Можно писать и по одному значению.
Недостаток rrdtool - у него не может быть дискретности меньше 1сек, т.к. используется time_t.

Вы все время пишите в базу, но никогда не стираете, при этом селекты в основном идут на последних данных?

Я бы тогда писал в табилцы по суткам, но это надо проверять, пробовать и смотреть. Могут быть подводные камни.

Если большая база лежит "мёртвым грузом" и к ней нет обращения. А с другой базой идёт работа.
то обычно она на быстродействие не влияет, однако 1 запрос к ней, когда его сделают, может сильно подвесить остальные базы. Хотя тут тоже зависит от разных факторов. Надо пробовать.

не предлагал использовать rrdtools. я предлагал посмотреть на него и сделать подобное в mysql
Моя практика показала, что эмулить rrd через mysql - довольно плохая идея. Но у меня данные шли в десятки раз чаще, чем раз в секунду.
Вообще надо смотреть на специфику данных и решать какой инструмент нужен.
...
Рейтинг: 0 / 0
Большая база и частые запросы
    #38659128
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще, если старые данные используются редко, то в mysql лучше всего держать их отдельной таблицей.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Большая база и частые запросы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]