powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / оптимизация MySQL
28 сообщений из 28, показаны все 2 страниц
оптимизация MySQL
    #39141255
ladoga1242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
В обслуживание достался офисный ПК:
- процессор AMD Athlon II X4 640 (4 ядра по 3 ГГц),
- оперативная память 4 ГБ PC3-10600 DDR-3,
- видео встроенное,
- жесткий диск Seagate ST500DM002 500 ГБ 7200rpm,
- операционка XP SP3 32-bit
- СУБД MySQL 4.1 и БД размером 3,6 ГБ.
К базе данных в час пик поступает порядка 70 запросов на запись в минуту, но не более 5000 запросов на запись в сутки. Количество запросов на чтение мне неизвестно.
Софт, работающий с БД, подтормаживает. Удаление старых записей и дефрагментация БД (dbForge Studio for MySQL) временно улучшают ситуацию, но тормоза всё равно остаются. Связь с разработчиками софта отсутствует. Единственное, что могу сказать: по-видимому, при запуске софт считывает всю БД, поскольку загружается весьма долго.
Компьютер работает круглосуточно, не перезагружается. Никаких оптимизаторов и очистителей оперативной памяти не используется.
ВОПРОС: Какие общие рекомендации по настройке операционной системы и СУБД Вы можете дать, чтобы подоживить систему?
С уважением, Сергей.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39141261
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"тюнинг" железа от "Кулибина" :-)
обычный офисный ПК переделывается в "офисный сервер" следующим образом:
- ОС Линукс х64 (проц у вас не Селерон, хотя у Атлонов малый кэш N-уровня), без иксов, только необходимое (допустим ЦентОС-server Убунту-server и т.д.).
- см'отрите на макс ОЗУ поддерживаемое мат платой (пару 4Г для Dual найдете на авито элементарно), думаю должна быть поддержка 8Г как минимум, память берите с одинаковыми таймингами, ничего не "рагоняйте", память должна работать в своем спокойном режиме
- сетевой интерфейс мин 1Г (это думаю есть), для небольшого офисного SQL-сервера более чем достаточно
- базу вынести на отдельный диск (можно и программный рейд1 на двух дисках, время записи увеличится, чтения уменьшится)
причем под систему достаточно маленькие ХДД 40Г-80Г (правда их уже и не найти), это с запасов, реально 4-6Г
- вентилятор-кулер в районе дисков на фронтальной панели (диски работающие в перегреве - источник "заразы"), если есть кулер на задней панели - перенесите к дискам, принудительный обдув в 10 раз эффективнее.
- ест-но "надежный" блок питания (его разборка и пылесос увеличивают надежность и срок службы), ИБП, визульная проверка на вздутие кондеров на материнской плате, изначально высыхают и пухнут только они, дальше проблемы только от них
.....
.....[/quote]

ОС Линукс без "Х" даст больше ресурсов, здоровье дисков незаметно в общем ускорит работу
------по MySQL обычные советы
переход на версию 5.х, спокойно, ничего сложного,
переход на InnoDB с MyIsam
дальше "тюнинг" (медленные запросы, индексы и т.д.)
хотя если будет ОЗУ 8Г все и так "оживится"
....ну а перезагрузку можете сделать по крону даже сейчас, допустим каждую полночь
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39141286
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242ВОПРОС: Какие общие рекомендации по настройке операционной системы и СУБД Вы можете дать, чтобы подоживить систему?

Никаких. Спасибо за вопрос.
Просто перестать надеяться, что это результативно.

Работающих настроек, собственно, две : innodb_buffer_size - это классический кеш и innodb_flush_log_at_trx_commit=0 - это "запрещенный прием". Если вы их попробовали, то должны понимать, что никакой оптимизации mysql по сути не существует. Нет практического смысла заниматься непродуктивными танцами несмотря на массу невнятных статеек и перекопированных мнений.

Если хотите результата - вам нужно сократить "задания" выполняемые mysql, а сами задания в виде запросов он делает достаточно хорошо. Зачем бы разработчикам могло понадобиться делать сразу плохо ?
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39141290
ladoga1242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Несколько пояснений.
У меня нет особенного опыта администрирования СУБД. Я хотел бы у Вас уточнить:
1. Нормально ли, что ПК тормозит при таком количестве запросов.
2. Имеет ли смысл переходить на старшую версию MySQL с точки зрения прироста производительности.
3. Требуется ли регулярная перезагрузка Windows XP для стабильной работы MySQL.
4. Могут ли быть полезны дефрагментаторы оперативной памяти.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39141295
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot ladoga1242]Несколько пояснений.
У меня нет особенного опыта администрирования СУБД. Я хотел бы у Вас уточнить:
1. Нормально ли, что ПК тормозит при таком количестве запросов.
[quot]
дело не в количестве, а в их ресурсоемкости.

2. Имеет ли смысл переходить на старшую версию MySQL с точки зрения прироста производительности.

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

3. Требуется ли регулярная перезагрузка Windows XP для стабильной работы MySQL.

Исходя из общих соображений администрирования - это иногда полезно, но вообще как-то примитивный способ решения проблем. По крайней мере, могу заявить, что это не является правилом хорошего тона администратора СУБД.

4. Могут ли быть полезны дефрагментаторы оперативной памяти.
на мой взгляд, нет.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39141297
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242Количество запросов на чтение мне неизвестно.
Выясните.

ladoga1242Софт, работающий с БД, подтормаживает.
Установите точные причины.

ladoga1242Какие общие рекомендации по настройке операционной системы и СУБД Вы можете дать, чтобы подоживить систему?
Заменить ОС на серверную.
Нарастить оперативки.
Наладить плотный мониторинг за ОС и за сервером, и выявить ВСЕ узкие места.

ladoga12423. Требуется ли регулярная перезагрузка Windows XP для стабильной работы MySQL.
Если для стабильной работы необходимы перезагрузки - это свидетельство наличия ОЧЕНЬ серьёзных проблем.
Windows XP под боевым сервером - вообще нонсенс.

ladoga1242Могут ли быть полезны дефрагментаторы оперативной памяти.
Дефрагментаторы памяти ВСЕГДА неполезны. И почти всегда - вредны.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39141310
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mysqltuner.pl прогони
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142279
ladoga1242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На всякий случай выложил структуру единственной крупной таблицы (порядка 5 млн. записей). На ней, собственно, и идёт торможение.
Никакого обслуживания таблиц, кроме дефрагментации, не проводилось.

CREATE TABLE davp.events (
id bigint(12) UNSIGNED NOT NULL AUTO_INCREMENT,
receivernr tinyint(2) UNSIGNED DEFAULT NULL,
linenr tinyint(2) UNSIGNED DEFAULT NULL,
objectnr mediumint(8) UNSIGNED DEFAULT NULL,
clasificator char(1) DEFAULT NULL,
eventcode char(3) DEFAULT NULL,
groupnr char(2) DEFAULT NULL,
zonenumber char(3) DEFAULT NULL,
status tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
receivedtime timestamp DEFAULT CURRENT_TIMESTAMP,
priority tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
selectable tinyint(3) NOT NULL DEFAULT 1,
reactedtime timestamp NULL DEFAULT NULL,
addedtoarchivetime timestamp NULL DEFAULT NULL,
receivername varchar(30) DEFAULT NULL,
linename varchar(30) DEFAULT NULL,
retranslator tinyint(3) DEFAULT NULL,
receivedlevel tinyint(3) DEFAULT NULL,
retranslatorlevel tinyint(3) DEFAULT NULL,
reactiontype tinyint(3) DEFAULT NULL,
eventsource tinyint(3) DEFAULT NULL,
eventname varchar(100) DEFAULT NULL,
reactionid int(11) DEFAULT NULL,
repeated enum ('Yes', 'No') NOT NULL DEFAULT 'No',
playsound enum ('Yes', 'No') DEFAULT NULL,
Reminder enum ('No', 'Yes') NOT NULL DEFAULT 'No',
RemindInMinutes tinyint(3) DEFAULT NULL,
RemindInHours tinyint(3) DEFAULT NULL,
RemindFromTime datetime DEFAULT NULL,
Remind enum ('No', 'Yes') NOT NULL DEFAULT 'No',
RemindAtTime datetime DEFAULT NULL,
ObjectName varchar(100) DEFAULT NULL,
eventdescid int(9) UNSIGNED DEFAULT NULL,
PRIMARY KEY (id),
INDEX addedtoarchivesindx (addedtoarchivetime),
INDEX clasificatorindx (clasificator),
INDEX eventcodeindx (eventcode),
INDEX groupnrindx (groupnr),
UNIQUE INDEX id (id),
INDEX id_2 (id),
INDEX linenrindx (linenr),
INDEX objectnrindx (objectnr),
INDEX priorityindx (priority),
INDEX reactedtimeindx (reactedtime),
INDEX reactiontypeindx (reactiontype),
INDEX receivedtimeindx (receivedtime),
INDEX receivernameindx (receivernr),
INDEX RemindIndx (Remind),
INDEX selectableindx (selectable),
INDEX statusindx (status),
INDEX zonenumberindx (zonenumber)
)
ENGINE = MYISAM
AUTO_INCREMENT = 15901920
AVG_ROW_LENGTH = 150
CHARACTER SET latin1
COLLATE latin1_swedish_ci
MAX_ROWS = 1000000000;
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142289
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ladoga1242,

У тебя сколько памяти то свободно? Встроенная видео жрет, еще и 32 бит.

Покажи свободно/кэшировано и список процессов системы.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142475
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242На всякий случай выложил структуру единственной крупной таблицы (порядка 5 млн. записей). На ней, собственно, и идёт торможение.Не, я фигею... вот какой смысл плакаться на абы тормоза, если до сих пор НИ ОДНОГО слова по делу не сказано?

Кому и зачем нужна эта твоя структура? Всё равно она ничего, кроме 95% уверенности в безграмотности архитектора, дать не может. Кроме, может, одного - если нет ошибки, средний размер записи действительно соответствует указанному, и старт клиентской части продолжается менее полуминуты, то утверждение "при запуске софт считывает всю БД" ложно, по крайней мере для этой таблицы.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142513
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242,

простой вопрос:
а сколько свободного места на диске С: ???
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142521
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242- СУБД MySQL 4.1Это опечатка или шутка в 2016 году?
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142657
ladoga1242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На системном диске С: имеется свободных 50 ГБ.
Софт может загружаться в худшем случае до получаса. После удаления годичных записей и дефрагментации время уменьшается до 5 минут.
Софт подтормаживает при переключении на вкладку событий по конкретному объекту, то есть при выборке событий по objectnr с сортировкой по receivedtime и лимитом 60.
Ещё небольшой вопрос. При установке MySQL был выбран вариант Server Machine. Изменится ли производительность, если выбрать Dedicated MySQL Server Machine? Может, для таблицы сменить тип MyISAM на InnoDB?

PS. Поздравляю всех с наступающим праздником Рождества Христова!
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142763
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242,

----
вопрос о своб.месте на С: связан с тем что по неписанным законом WinXP нелогично работает и загружается при своб. месте <~4Г (недоказуемо, неописуемо, из практики)
---
Dedicated - когда сервер только для MySQL
Server Machine - когда на ПК используются еще какие нибудь сервера
Это все условно Инфо
---
Вы так и не показали my.ini - файл конфигурации, по которому и можно что-то предположить
также нужен анализ ваших логов.
---
Все далее - пальцем в небо.......
Пол часа на загрузку - это очень много......
Может быть, что ваш диск умирает, или после нелогичного завершения идет какой-нибудь рековери.
Может быть, ресурсов в my.ini выделено очень много - начинается "своп" - это наиболее вероятно.
Использование системного диска (если у вас базы расположены /mysql/data как в стандартной установке) для нагруженной базы - смерти подобно
Может быть....(здесь должно быть продолжение на несколько строк)
---
Может, для таблицы сменить тип MyISAM на InnoDB?
да

смотри 18634524 ] выше, все займет 1 рабочий день "с нуля", выгрузить дамп, сделать сервер x64 и т.д.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142766
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242На системном диске С: имеется свободных 50 ГБ.Значит еще и файловая система фрагментирована сильно.
Я бы предложил вынести базу на отдельный физический диск. В идеале на SSD.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142805
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242PRIMARY KEY (id),
...
UNIQUE INDEX id (id),
INDEX id_2 (id),
Зачем так много одинаковых индексов?
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142860
ladoga1242,

А ты храбрый, сидишь на бомбе с тикающими часами, и не знаешь, как ей управлять.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142956
ladoga1242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посоветуйте, пожалуйста, есть ли смысл с точки зрения прироста производительности в переносе базы с системного С на логический Д? Отдельный жесткий в бюджете пока не значится :(
В ближайшее время выложу конфиг MySQL.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142960
ladoga1242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[mysqld]
basedir="C:/Program Files/MySQL/MySQL Server 4.1/"
datadir="C:/Program Files/MySQL/MySQL Server 4.1/Data/"
query_cache_size=0
table_cache=256
tmp_table_size=51M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=102M
key_buffer_size=84M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K

# хотя тип таблиц myisam, решил выложить
innodb_additional_mem_pool_size=3435K
innodb_flush_log_at_trx_commit=1
innodb_buffer_pool_size=163M
innodb_log_file_size=82M
innodb_thread_concurrency=8
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39142965
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242, Эти значения при установке программы заданы ? Если программист так видит и они обусловлены его опытом поддержки программы, то может и стоит ему довериться.

>query_cache_size=0
Исходя из моего понимания типичной программы типа "Автоматизированное Рабочее Место Дофига Специалиста" в конфигурации на обычном сервере надо бы поднять до 64мб.

>key_buffer_size=84M
Ну тоже поднимите. 300-500 мб.


авторПосоветуйте, пожалуйста, есть ли смысл с точки зрения прироста производительности в переносе базы с системного С на логический Д? Отдельный жесткий в бюджете пока не значится :(
Падение производительности при почти полном заполнении логического диска имеет место. Но может тогда старый просто расчистить ?
Просто так нет смысла переносить.


Вы не написали что с железом. Мне, кажется, это в первую очередь надо проверить. Наверняка вы SMART диска не смотрели ни разу, не говоря уж о тестах (почему-то в windows отсутсвует широкоизвестное ПО для этого тестирования)
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39143012
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242есть ли смысл с точки зрения прироста производительности в переносе базы с системного С на логический Д?Не шибко большой, но есть. При условии, что там свободного места не менее, чем на 3-4 размера базы и если после размещения базы останется свободным не менее 20% от емкости раздела.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39143028
ladoga1242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изучение работы софта в последние дни даёт повод усомниться в высоком профессионализме разработчиков, поэтому рассчитывать на осмысленный выбор ими настроечных параметров MySQL я бы не стал...
У меня ещё вопрос по файлу подкачки. В случае с MySQL какой его рекомендуемый объем? Оперативки стоит 4 ГБ, часть из них не видит XP 32-bit, ещё часть идёт на встроенное видео.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39143044
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242У меня ещё вопрос по файлу подкачки. В случае с MySQL какой его рекомендуемый объем?Без разницы. Он не должен использоваться. Это просто некая страховка от пиковых расходов памяти.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39143063
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga1242,

не поверю, что не найти жесткого диска на 40-80G пусть даже 5400 rpm
найдите Тех мастерскую по ПК
по вашим словам похоже еще и интегрированное в мазербоард видео, надо воткнуть отдельно старую PCI- или AGP видео карту...
у вас достаточно быстрая мат.плата судя по "шине" памяти
скачайте какой-нибудь Hirens BootCD для теста диска. Если температура близка к 39-40 - это НЕнормально, нормальная с обдувом должна быть до 37. Даже 1 градус может значительно повлиять на работу.
Подготовьте спокойно этот "серверок", поверьте, ваши труды не пройдут даром, в нормально подготовленное железо вы не полезете очень долго, офисные серверки не все с сумасшедшими параметрами

Решите с железом и ОС - дальше будет более радостно с MySQL.

miksoftladoga1242есть ли смысл с точки зрения прироста производительности в переносе базы с системного С на логический Д?
Не шибко большой, но есть. При условии, что там свободного места не менее, чем на 3-4 размера базы и если после размещения базы останется свободным не менее 20% от емкости раздела.есть только ради избавления конкуренции за место на жестком диске, т.е. в плане стабильного пространства под базу, по скорострельности - головка то у диска одна и остается
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39143248
ladoga1242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наконец руки дошли включить логирование:
1. При запуске софта медленных запросов не выявлено, в общий лог пошли запросы проверки таблиц CHECK TABLE. На проверке таблицы событий прошло несколько минут.
2. При переключении на вкладку событий по конкретному объекту в лог медленных запросов попался вот такой (время выполнения несколько секунд):
SELECT DATE_FORMAT(ev.receivedtime, '%Y.%m.%d') receiveddate, DATE_FORMAT(ev.receivedtime, '%Y.%m.%d %H:%i:%s') receivedtime, ev.receivedtime receivedtime2, CONCAT(ev.clasificator, " ", ev.eventcode, " ", ev.zonenumber) eventcode, ev.eventname, ev.reactedtime, HEX(CAST(ev.receivedlevel AS UNSIGNED)) receivedlevel, HEX(CAST(ev.retranslatorlevel AS UNSIGNED))retranslatorlevel, IF(ev.name IS NULL, HEX(CAST(ev.retranslator AS UNSIGNED)), ev.name) retranslatorname FROM (SELECT * FROM events LEFT JOIN retranslators ON events.retranslator = retranslators.nr WHERE events.objectnr='4103' and events.linenr='1' and events.receivernr='1' and (events.repeated =2 or events.repeated = 'No') ORDER BY events.receivedtime DESC LIMIT 50) ev ORDER BY receivedtime2 DESC;

С долгим запуском можно смириться, но подвисания при запросах хотелось бы исключить. В этой связи несколько вопросов:
1. Насколько я понимаю, по железу запрос ложится прежде всего на процессор (и на жесткий диск, но на серверный ssd денег всё равно не дадут). Подскажите, пожалуйста, есть ли смысл в особой многоядерности процессора или достаточно максимально быстрого 4 ядерника? Сейчас работает Athlon X4 640 (4 ядра по 3 ГГц). Буду признателен за указание конкретной модели среднего ценового диапазона и под тот же AM3.
2. В настоящее время установлен MySQL 4.1, но если последние версии умеют распараллеливать запросы, сделаю апгрейд.
3. Как оптимально настроить MySQL? Текущие параметры my.ini были приведены выше.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39143254
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladoga12422. При переключении на вкладку событий по конкретному объекту в лог медленных запросов попался вот такой (время выполнения несколько секунд):
SELECT DATE_FORMAT(ev.receivedtime, '%Y.%m.%d') receiveddate, DATE_FORMAT(ev.receivedtime, '%Y.%m.%d %H:%i:%s') receivedtime, ev.receivedtime receivedtime2, CONCAT(ev.clasificator, " ", ev.eventcode, " ", ev.zonenumber) eventcode, ev.eventname, ev.reactedtime, HEX(CAST(ev.receivedlevel AS UNSIGNED)) receivedlevel, HEX(CAST(ev.retranslatorlevel AS UNSIGNED))retranslatorlevel, IF(ev.name IS NULL, HEX(CAST(ev.retranslator AS UNSIGNED)), ev.name) retranslatorname FROM (SELECT * FROM events LEFT JOIN retranslators ON events.retranslator = retranslators.nr WHERE events.objectnr='4103' and events.linenr='1' and events.receivernr='1' and (events.repeated =2 or events.repeated = 'No') ORDER BY events.receivedtime DESC LIMIT 50) ev ORDER BY receivedtime2 DESC;
0. Ужасно оформляете код. Так вот гораздо лучше читать и понимать
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
SELECT 
    DATE_FORMAT(ev.receivedtime, '%Y.%m.%d') receiveddate, 
    DATE_FORMAT(ev.receivedtime, '%Y.%m.%d %H:%i:%s') receivedtime, 
    ev.receivedtime receivedtime2, 
    CONCAT(ev.clasificator, " ", ev.eventcode, " ", ev.zonenumber) eventcode, 
    ev.eventname, 
    ev.reactedtime, 
    HEX(CAST(ev.receivedlevel AS UNSIGNED)) receivedlevel, 
    HEX(CAST(ev.retranslatorlevel AS UNSIGNED))retranslatorlevel, 
    IF(ev.name IS NULL, HEX(CAST(ev.retranslator AS UNSIGNED)), ev.name) retranslatorname 
FROM 
    (
        SELECT 
            * 
        FROM 
            events 
            LEFT JOIN retranslators ON events.retranslator = retranslators.nr 
        WHERE 
            events.objectnr='4103' 
            and 
            events.linenr='1' 
            and 
            events.receivernr='1' 
            and 
            (
                events.repeated =2 
                or 
                events.repeated = 'No'
            ) 
        ORDER BY 
            events.receivedtime DESC 
        LIMIT 50
    ) ev 
ORDER BY 
    receivedtime2 DESC;


1. Не вполне понятно, для чего форматирование вынесено в обёртку. Да и вторая сортировка вроде лишняя.
2. Смешались в кучу строки, числа...автор(events.repeated =2 or events.repeated = 'No')
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39143256
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поля events.repeated и events.retranslator не проиндексированы, кажись. Это плохо.
Проверьте наличие индексов на остальных полях, по которым идёт связывание таблиц и отбор записей.
...
Рейтинг: 0 / 0
оптимизация MySQL
    #39143370
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleevents.retranslatorПо этому полю индекс не нужен, т.к. events всегда будет ведущей таблице в JOIN-е.
А вот нужен индекс по полю retranslators.nr

По таблице events надо смотреть статистику данных. Если поле objectnr имеет высокую селективность, то будет достаточно индекс по нему. Если нет, то надо смотреть на селективность в совокупности с другими полями, упомянутыми в секции WHERE.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / оптимизация MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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