|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
Добрый день! Есть сравнительно небольшая база данных. Ну как небольшая - сейчас 35 Mb, ориентировочно до 500 Mb (старые данные просто автоматом удаляются ночью через несколько дней после записи). Работает совместно с многопоточным приложением на слабеньком ПК - Celeron N2840 4Gb RAM. Менять его не планируется. Разве что HDD на SSD поменять. Раньше была база данных сделана на sqlLite, но перестало хватать ее возможностей. Переделал на MySQL. MySQL при работе проги стал грузить процессор на 50-60% и "шуршит" диском постоянно. Основная операция, которая грузит mysql - запись в три таблицы. В одну из них запись происходит не чаще 1 раз в секунду, а основное время - гораздо реже. Не думаю, что она является причиной загрузки процессора. А вот в другую - может быть и до несколько десятков записей в секунду: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Ну еще и лог программы - тоже до нескольких десятков записей в секунду: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Теперь собственно вопрос: имеет ли смысл заменить СУБД на MS SQL Express? По возможностям ее вроде бы должно хватить. Конечно, я понимаю, что можно просто "взять и попробовать", но на это уйдут драгоценные дни. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 17:36 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
kotyara12, А точно нужны все эти FOREIGN KEY в таких количествах? Особенно в таблице логов? Я бы предложил от их части избавиться. Какой движок таблиц? Чему равны параметры innodb_flush_log_at_trx_commit и innodb_file_per_table? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 17:59 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
miksoftА точно нужны все эти FOREIGN KEY в таких количествах? Особенно в таблице логов? Я бы предложил от их части избавиться. принимается. "на автомате" сделал )) часть уберу miksoftКакой движок таблиц? InnoDB, по умолчанию miksoftЧему равны параметры innodb_flush_log_at_trx_commit и innodb_file_per_table? innodb_flush_log_at_trx_commit = 1 innodb_file_per_table = ON ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:34 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
kotyara12имеет ли смысл заменить СУБД на MS SQL Express? Поскольку ты не знаешь ни того ни другого, то это замена шила на мыло. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:37 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ну так я и спрашиваю знающих людей ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:43 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Поскольку ты не знаешь ни того ни другого, то это замена шила на мыло. Вот не понимаю я таких ответов. Я вполне допускаю, что я много и много не знаю. Я вполне допускаю что Ваши знания в 10, 100, 1000, 100500 раз больше моих. Так поделитесь своими значениями, подскажите... Разве это повод для язвительных комментариев? В чем проблема-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:48 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
kotyara12 innodb_flush_log_at_trx_commit = 1 Попробуйте поставить 0. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:52 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
kotyara12Так поделитесь своими значениями, подскажите... Подсказываю: надо изучать выбранную СУБД, её инструменты настройки производительности и обнаружения узких мест. Потом скурпулёзно применять вторые с целью понять как и куда применить первые. Это многодневная нудная работа. Лечить по фотографии, как начал miksoft можно, конечно, но результат не гарантирован. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:57 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
miksoft Попробуйте поставить 0. Спасибо, помогло (убрал индексы в том числе). Нагрузка снизилась. Но все-таки, возвращаясь к собственно исходному вопросу, может для такого слабого проца на MS SQL переделать базу? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 19:31 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
kotyara12 может для такого слабого проца на MS SQL переделать базу? Любую СУБД надо настраивать под вашу конкретную задачу. С учетом того, то нагрузка довольно низкая, предлагаю оставить как есть и не тратить время на другие СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 19:50 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
kotyara12 Раньше была база данных сделана на sqlLite, но перестало хватать ее возможностей. Переделал на MySQL. MySQL при работе проги стал грузить процессор на 50-60% и "шуршит" диском постоянно. Основная операция, которая грузит mysql - запись в три таблицы. В одну из них запись происходит не чаще 1 раз в секунду, а основное время - гораздо реже. Не думаю, что она является причиной загрузки процессора. А вот в другую - может быть и до несколько десятков записей в секунду: Ваша основная проблема IMHO - это морально старое железо. Celeron/4G даже не продается на барахолках. Там уже лежит техника Б/У но следующего поколения. Чисто технически я-бы вам предложил купить за 200$ новое железо. И даст бох - еще 5 лет протяните. +Надо памяти побольше т.к SQLite срёт в MemoryMap операционки. А это есть виртуальная прослойка между диском и памятью. Я считаю что вы больше потратите времени и нервов (на 1000$) просто бегая по форумам и проверяя ненужные советы. То что вы переделали на MySQL - требует пояснения по дизайну. В MySQL - это сборный конструктор типа LEGO и надо смотреть какой тип "engine" вы выбрали для хранения. И дальше делая step-by step наблюдать как растёт или деградирует производительность. По поводу 1 раз или 10 раз в секунду. Это черепашья скорость. Вообще ниочем. Для современных DBMS - 500 000 inserts / per second это уже норма. Возможно проблему создает неудачный дизайн БД. И избыточное индексирвоание. Тоесть вы слишком аккуратно тестируете и нормализуете. А в вашей задаче можно было-бы ввести легкие staging-tables (только для загрузки без индексов и ограничений) и раз в в сутки синкать их с основной нормализованной моделью. Это из "best practices" по ETL я рассказываю. По поводу загрузки CPU. У вас всё настолько запущено что CPU может быть просто следствием неудачной модели (6 индексов) и при прочих равных условиях вам бы его хватало. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2020, 17:58 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
explain analyze ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2020, 15:41 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
ScareCrow explain analyze Это не даст ответов на вопросы автора. Его вопрос - хай-левел архитектуры и подходить к нему с позиции explain это слишком поздно. Поздно пить боржоми. Тем более что у него дохлый HDD и камень устарел на 10 лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2020, 15:51 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
Камень относительно свежий. Да, celeron, но относительно свежий, примерно 3-х летней давности. И, оказалось, проблема была не в нем. А как всегда в моих кривых руках. Один из SELECT-ов выполнялся аж 9 секунд, а с учетом что их много - нагрузка на sql сервер была значительной. Поправил так, чтобы было 0,01 сек и все стало нормально :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2020, 21:15 |
|
MySQL против MS SQL EXPRESS : что выбрать по нагрузке на диск / процессор при записи в БД
|
|||
---|---|---|---|
#18+
ScareCrow explain analyze опаньки !!! не знал, не знал... очень полезная штука. просто огромное спасибо!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2020, 21:17 |
|
|
Start [/forum/topic.php?fid=35&msg=39930278&tid=1552177]: |
0ms |
get settings: |
14ms |
get forum list: |
18ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
50ms |
get topic data: |
8ms |
get forum data: |
1ms |
get page messages: |
351ms |
get tp. blocked users: |
1ms |
others: | 335ms |
total: | 780ms |
0 / 0 |