|
|
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
В общем после оптимизации всё стало намного медленнее работать. 1 запись изменяется по 2 минуты. И за месяц так не обработается. Я везде комментарии с сообщениями поставил. Тормозит запрос Код: pascal 1. 2. 3. 4. 5. 6. Думаю сортировка по индексу не применяется, и тратятся ресурсы на поддержку сортировки по 3 полям, хотя ЭТОТ ЗАПРОС ВСЕГДА ВОЗВРАЩАЕТ 1 ЗАПИСЬ (200 Кб - 3 Мб). Наверно лучше без сортировки. А есть ли метод "FIND FIRST" в языке SQL чтобы использовать вместо SELECT многих записей? И какой наиболее быстрый способ загрузки BLOB-поля из файла, с учётом, что я могу программу локально на сервере запустить? === Подозреваю, что есть какое-то ограничение на скорость передачи данных, ведь все данные передаются по сетевому протоколу хоть и внутри 1 компьютера, а интернет у нас не быстрый). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 12:50:46 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
useronforumТормозит запрос Код: pascal 1. 2. 3. 4. 5. 6. Знаете... мои нервы хоть и были отмечены выше, но они тоже заканчиваются. Зачем здесь вообще сортировка? Уберите сортировку, соберите запрос в строковую переменную, выведите ее на экран или еще куда-нибудь. Затем подключитесь к MySQL консольным или GUI-клиентом или PHPMyAdmin-ом и посмотрите план этого запроса. После этого показывайте нам запрос и его план. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 13:16:31 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
Сортировку убрал, скорость почти не изменилась. Но когда добавил "LIMIT 1" скорость заметно возросла (но сильно уменьшается при приближении к концу таблицы) авторЗатем подключитесь к MySQL консольным или GUI-клиентом или PHPMyAdmin-ом и посмотрите план этого запроса. После этого показывайте нам запрос и его план. Это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 14:32:16 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
useronforumНо когда добавил "LIMIT 1" скорость заметно возрослаЛибо вы что-то путаете, либо изначальная установка "каждая запись уникальна по паре значений CODE и NUM" неверна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 14:50:50 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
useronforumЭто как?Посмотреть план запроса можно, например, добавив перед ним слово EXPLAIN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 14:51:37 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
и покажи код по аналогии с 1 постом в чем тормоза? в обработке дельфи или mysql сервера? можешь / умеешь пользоваться пошаговой отладкой? поставь таймеры - определи какой кусок кода работает дольше авторНо когда добавил "LIMIT 1" скорость заметно возросла ты что-то скрываешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 15:05:14 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. EXPLAIN Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Смущает rows. В таблице меньше записей кажется. авторавторНо когда добавил "LIMIT 1" скорость заметно возросла Либо вы что-то путаете, либо изначальная установка "каждая запись уникальна по паре значений CODE и NUM" неверна. Уникальна практически, но как уникальная возможно не установлена (как ключ). авторможешь / умеешь пользоваться пошаговой отладкой? поставь таймеры - определи какой кусок кода работает дольше Использую. С их помощью определил, что именно этот запрос тормозит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 15:38:39 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
так проверь Код: sql 1. 2. и соответсвенно поправиь везде и код приведи с делфи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 16:17:14 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
вадя, Не правильно. Есть записи с одинаковым CODE, но разным NUM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 16:24:53 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
useronforumEXPLAIN Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Смущает rows. В таблице меньше записей кажется.useronforumПро ключи узнал: PRIMARY KEY (`CODE`,`NUM`,`DATE1`).Не верю. Либо ключа нет, либо он не такой, либо запрос не такой. Покажите итоговый запрос, а не выражение, его вычисляющее. P.S. Количество записей примерное, это оценка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 16:45:26 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
выложи DDL таблицы MyTable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 16:45:50 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
авторавторПро ключи узнал: PRIMARY KEY (`CODE`,`NUM`,`DATE1`). Не верю. Либо ключа нет, либо он не такой, либо запрос не такой. Покажите итоговый запрос, а не выражение, его вычисляющее. Посмотрел сторонней программой. Пишет: Indexes: CODE Fields: CODE Index method: BTREE Foreign keys: Name: photo Fields: CODE Ранее смотрел другой программой, там по другому кажется написано было, но я тогда мог перепутать индекс с текущей сортировкой. Попробую сортировку по CODE. === Обнаружил триггер на таблице: В OnUpdate таблицы: BEGIN UPDATE `list` SET `posted` = 0 WHERE CODE = NEW.`CODE`; END Казалось бы проблема найдена, НО тормозит чтение BLOB-поля, а не запись нового значения его. Или теоретически возможно, что я отправляю update, а когда следом читаю SELECT, то MySQL ещё выполняет этот триггер, и поэтому тормозит загрузка данных? === А возможно ли временно отключить триггер, а потом включить не удаляя? Если да, то как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 17:15:58 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
useronforum, покажите результат запроса CREATE TABLE MyTable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 17:18:11 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
Я такой запрос выполнить не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 17:29:08 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
А можно ли создать триггеры через SQL-запрос? А то я их отключил, а они удалились при этом. (копию их кода я из резервной копии потом попробую восстановить.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 17:44:55 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
useronforumЯ такой запрос выполнить не могу.Что мешает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 17:54:02 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
useronforumА можно ли создать триггеры через SQL-запрос? А то я их отключил, а они удалились при этом. (копию их кода я из резервной копии потом попробую восстановить.)Отключения триггеров в MySQL нет, только удаление и создание. Триггера только через SQL-запрос и можно создать, иначе никак. Но это явно не причина медленного чтения из таблицы. Причина - отсутствие подходящего индекса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 17:55:36 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
А может индекс временно создать, обработать все BLOB и индекс удалить? === Долго ли будет создаваться индекс для БД 3 Гб и как узнать, что он создался и все записи проиндексированы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 18:13:51 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
useronforumА может индекс временно создать, обработать все BLOB и индекс удалить?Можно и так, если обработка нужна один раз, а не регулярно. useronforumДолго ли будет создаваться индекс для БД 3 Гбдостаточно быстро, сам индекс-то получится маленький. useronforumкак узнать, что он создался и все записи проиндексированы?Выдаст в конце "ОК", значит все записи проиндексированы. В противном случае выдаст ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 18:21:43 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
А какие запросы к БД создают триггер и индекс? Напишите примеры запроса для MySQL, чтобы мне долго не искать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 18:38:44 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
miksoftuseronforumЯ такой запрос выполнить не могу.Что мешает? ????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 18:42:24 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
useronforumА какие запросы к БД создают триггер и индекс? Напишите примеры запроса для MySQL, чтобы мне долго не искать.А вы ищите быстро :) У MySQL вполне приличная документация и она неплохо структурирована. CREATE TRIGGER Trigger Syntax and Examples ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 18:48:45 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
скачай db forge и не майся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 18:57:25 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
В общем одной программой удалил триггеры, а создать заново она их не может. Пришлось другой создавать (HeidiSQL). К счастью создались. === Про индексы: Программа пишет: Код: pascal 1. 2. 3. А как в SQL запросе сказать, что нужно использовать индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 20:23:52 |
|
||
|
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
|
|||
|---|---|---|---|
|
#18+
В общем запрос теперь такой: Код: pascal 1. 2. 3. 4. 5. 6. Создал дополнительный индекс CODE_NUM по полям CODE, NUM, но это судя по всему не повлияло. Но при использовании ORDER BY CODE, NUM EXPLAIN стало возвращать: Код: pascal 1. 2. 3. 4. 5. 6. 7. Завтра опять буду пробовать на настоящей базе данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 21:11:20 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38618864&tid=1834940]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 351ms |

| 0 / 0 |
