powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Медленное выполнение запроса
14 сообщений из 14, страница 1 из 1
Медленное выполнение запроса
    #32392433
Osiris_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi!

Суть проблемы в следующем. Имеем таблицу куда записываются данные с определенной переодичностью (5 раз в секунду например) работает все шустро.

Таблица Chanel:
Имя поля Тип поля Размер
CHANEL_ID INTEGER 11 поле ID номера канала
TIME_ID INTEGER 11 поле ID времени
DATA TEXT 255 поле данные

Запись:
INSERT INTO Chanel VALUES(запись ID номера канала, запись ID времени, запись данных)

Но вот теперь хотим получить последнию запись с самым большим значением по полю TIME_ID

SELECT * FROM Chanel ORDER BY TIME_ID DESC LIMIT 1

И началось сервер MySQL загружет проц на все 100% секунды на 2, а таких запросов может быть подряд штук 100.

Зарание благодарен.

P.S. Работаю с MySQL (да и вобще с базами) недавно так, что мог запросто
пропустить какой-нибуть нюанс при создании таблицы.
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392466
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A ne mogli by Vy soobshit - kakie est v tablice indexy?
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392491
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А цель сразу узнать наибольший ID? Может стоит использовать LAST_INSERT_ID
MySQL.com предлагает:
Код: plaintext
1.
2.
..issue the query 'SELECT LAST_INSERT_ID()'
after issuing an 'INSERT' to a table that had an AUTO_INCREMENT key.

. http://sql.ru/]mahoune
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392492
Osiris_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A ne mogli by Vy soobshit - kakie est v tablice indexy?

Я считал, что по умолчанию создаются :-\

Если не затруднит, простую строку создания индекса для какого либо поля
или в каком разделе документации искать (очень беглый просмотр не дал обнаружить сразу - где описание создания индекса)
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392499
Osiris_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mahoune

У меня записывает один процес, а считывает другой.
Я так понял, что LAST_INSERT_ID работает, только в том же процесе
который и записывал.
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392509
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Net problem:

create index my_own_index on mytable (TIME_ID);
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392525
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не совсем процесс, скорее подключение. Но с индексами идея очень правильная!

CREATE INDEX Syntax

. http://sql.ru/]mahoune
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392640
Osiris_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще раз прочитал документацию.
Там написано, что все индексы автоматически создаются во время выполнения
CREATE TABLE

Так, что я так понимаю дело не в индексах.

P.S. посмотрел какталог базы - для каждой таблицы есть свой файл индекса с расширением MYI
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392651
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воспользуйся SHOW CREATE TABLE для уверенности!

. http://sql.ru/]mahoune
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392703
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Там написано, что все индексы автоматически создаются во время выполнения

процитируйте пожалуйста, где это там такое написано.

скорее всего вы перепутали файл для индекса MYI с самим индексом, который разработчик по свему успотрению делает для тех полей, по которым нужно записи искать, сортировать и идентифицировать.
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392739
Osiris_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mahoune

Сходу не получилось кмандой этой воспользоваться :-\

Но есть у меня прога EMS MySQL Manager
так вот она показывает, что не у одной базы индексов нет.

Создал с ее помощью индекс и сделал запрос.
скорость значительно возросла, нагрузка на проц упала.

Я так понимаю, что вопреки документации CREATE TABLE
никаких индексов автоматом не создала.

Понятно, что теперь я укажу при создании таблицы принудительно создавать индекс, но почему так получилось?
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392777
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но просто интересно, а какие индексы могла бы по умолчанию создать команда create table. по всем полям и по всем комбинациям полей штоль... где ж такое в документации-то...

эта команда создает индексы по полям, если сказать primary key в определении поля, например.
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32392926
Osiris_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fedd
Вот тут в документации написано( CREATE_INDEX ):

Обычно все индексы создаются в таблице во время создания самой таблицы командой CREATE TABLE. See section 6.5.3 Синтаксис оператора CREATE TABLE. CREATE INDEX дает возможность добавить индексы к существующим таблицам
...
Рейтинг: 0 / 0
Медленное выполнение запроса
    #32395511
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключевое слово в куске текста что ты привел "обычно" :))
В этом выражении имеется ввиду, что индексы обчно создают в команде создания таблицы, передавая необходимые значения и параметры!

Плюс еще вот такой текст из доки:
Команда CREATE TABLE ... SELECT не создает автоматически каких-либо индексов. Это сделано преднамеренно, чтобы команда была настолько гибкой, насколько возможно. Чтобы иметь индексы в созданной таблице, необходимо указать их перед данной командой SELECT.

Косвенно он говорит о том что и сама команда CREATE TABLE тоже "гибкая" и никаких индексов автоматически не создает!

. http://sql.ru/]mahoune
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Медленное выполнение запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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