powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
25 сообщений из 85, страница 2 из 4
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38617960
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так сделал 15897029 ?
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38617962
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибки при работе появились.

Возможно нужно разные объекты MySQL для MySQL.Query
создавать для запроса
авторЦикл по запросу вида
SELECT CODE, NUM FROM MyTable ORDER BY CODE, NUM
до Eof.
и
авторВ цикле запросы:
SELECT IMAGE FROM MyTable WHERE CODE=... AND NUM=...
UPDATE MyTable SET MyTable.IMAGE=... WHERE CODE=... AND NUM=...
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38617966
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforumВозможно нужно разные объекты MySQL для MySQL.Query
создавать для запросаДа, конечно, это два разных Query,
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38617982
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
Только результаты Query разные переменные,
или и объекты для подключения к БД разные
и для каждого нужно отдельно указывать IP, Port, User, Password и делать Connect?
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38617988
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforummiksoft,
Только результаты Query разные переменные,
или и объекты для подключения к БД разные
и для каждого нужно отдельно указывать IP, Port, User, Password и делать Connect?Сессия одна, Query разные.
Можно даже три Query сделать, чтобы во втором запрос постоянно не переписывать.

Кстати, если движок таблиц InnoDB и автокоммит выключен, то коммит делать не забывайте.
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38617991
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня не находит IMAGE по ID и CODE.
Может нужны кавычки где-нибудь
или индекс не правильно указал?

Код: pascal
1.
2.
3.
4.
5.
      query_result_image := MySQL.Query(
        'SELECT IMAGE FROM MyTable ORDER BY CODE, NUM, DATE1' +
        ' WHERE CODE = ' + query_result.ValueByName['CODE'] +
        ' and NUM = ' + query_result.ValueByName['NUM']
        );
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38617994
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
авторКстати, если движок таблиц InnoDB и автокоммит выключен, то коммит делать не забывайте.
Что такое автокоммит и как делать коммит?
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618005
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заработал поиск IMAGE без сортировки.

Теперь тормозит всё даже на моей маленькой базе с 20 записями.

А я столько кода уже переписал...
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618006
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforumУ меня не находит IMAGE по ID и CODE.
Может нужны кавычки где-нибудь
или индекс не правильно указал?

Код: pascal
1.
2.
3.
4.
5.
      query_result_image := MySQL.Query(
        'SELECT IMAGE FROM MyTable ORDER BY CODE, NUM, DATE1' +
        ' WHERE CODE = ' + query_result.ValueByName['CODE'] +
        ' and NUM = ' + query_result.ValueByName['NUM']
        );

Уберите секцию ORDER BY, она тут не нужна. Во-первых, по синтаксису она ставится после WHERE. Во-вторых, здесь все равно не может быть выбрано более одной записи, так что сортировать просто нечего.

И научитесь ловить исключения или проверять возвращаемые ошибки, чтобы не пропустить сигнал от MySQL о неправильном синтаксисе запроса.
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618008
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforummiksoft,
авторКстати, если движок таблиц InnoDB и автокоммит выключен, то коммит делать не забывайте.
Что такое автокоммит и как делать коммит?Похоже, что пока это неважно.
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618009
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforumЗаработал поиск IMAGE без сортировки.

Теперь тормозит всё даже на моей маленькой базе с 20 записями.Итоговый код покажите
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618014
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

а индекс правильно указан:
Код: pascal
1.
ORDER BY CODE, NUM, DATE1


C пробелами, запятыми и без общих кавычек?

Порядок полей важен?

Может индекс можно только по имени указывать, а не перечислением полей?
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618015
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforummiksoft,

а индекс правильно указан:
Код: pascal
1.
ORDER BY CODE, NUM, DATE1



C пробелами, запятыми и без общих кавычек?

Порядок полей важен?

Может индекс можно только по имени указывать, а не перечислением полей?ORDER BY - это не индекс, это указание как сортировать результат запроса. Оно может выполняться и при наличии индекса, и без него. Порядок полей был бы важен, если бы сам этот ORDER BY был важен.
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618019
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторORDER BY - это не индекс, это указание как сортировать результат запроса. Оно может выполняться и при наличии индекса, и без него. Порядок полей был бы важен, если бы сам этот ORDER BY был важен.

В первом запросе порядок важен
Код: c#
1.
2.
    query_result := MySQL.Query(
      'SELECT CODE, NUM FROM MyTable ORDER BY CODE, NUM, DATE1 LIMIT ' + IntToStr(Limit1) + ' OFFSET ' + IntToStr(offset1));



Индекс автоматически задействуется, если ORDER BY указан по полям как в индексе, или нет?
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618025
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А не должны ли обязательно быть в SELECT перечислены все те поля, которые есть в ORDER BY?
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618027
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforumавторORDER BY - это не индекс, это указание как сортировать результат запроса. Оно может выполняться и при наличии индекса, и без него. Порядок полей был бы важен, если бы сам этот ORDER BY был важен.

В первом запросе порядок важен
Код: c#
1.
2.
    query_result := MySQL.Query(
      'SELECT CODE, NUM FROM MyTable ORDER BY CODE, NUM, DATE1 LIMIT ' + IntToStr(Limit1) + ' OFFSET ' + IntToStr(offset1));




Индекс автоматически задействуется, если ORDER BY указан по полям как в индексе, или нет?Да, в таком запросе порядок важен.
В первую очередь он зависит от задачи, чтобы был правильный результат.
Во вторую очередь желательно, чтобы порядок полей совпадал с порядком полей в начале индекса. Тогда этот индекс может быть использован для сортировки.

Поле DATE1 из ORDER BY уберите, все равно оно не идет в результат. Да и на сортировку не влияет.

А вот зачем тут LIMIT - не понятно.
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618029
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforumА не должны ли обязательно быть в SELECT перечислены все те поля, которые есть в ORDER BY?Нет, вообще эти списки полей могут даже не пересекаться.
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618034
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПоле DATE1 из ORDER BY уберите, все равно оно не идет в результат. Да и на сортировку не влияет.

А вот зачем тут LIMIT - не понятно.
Поле DATE1 в ORDER BY есть, так как оно есть в индексе.

LIMIT на всякий случай ставлю из Edit.
Если будет переполнение памяти, то поставлю 1 и проверю сразу же.

авторавторА не должны ли обязательно быть в SELECT перечислены все те поля, которые есть в ORDER BY?
Нет, вообще эти списки полей могут даже не пересекаться.
Но почему то не работал:
Код: pascal
1.
2.
3.
4.
5.
     query_result_image := MySQL.Query(
        'SELECT IMAGE FROM MyTable ORDER BY CODE, NUM, DATE1' +
        ' WHERE CODE = ' + query_result.ValueByName['CODE'] +
        ' and NUM = ' + query_result.ValueByName['NUM']
        );
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618035
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforum,

15898007
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618038
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Забыл.

===
А LIMIT 1 не ускорит запрос, если запись всегда 1?
Код: pascal
1.
2.
3.
MySQL.ExecSQL('UPDATE MyTable SET MyTable.IMAGE="' + b +
              '" WHERE CODE = ' + query_result.ValueByName['CODE'] +
              ' and NUM = ' + query_result.ValueByName['NUM']);
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618039
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforumА LIMIT 1 не ускорит запрос, если запись всегда 1?нет.
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618047
useronforum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, на сегодня всё.

Моя программа по крайней мере у меня стала грузить процессор намного сильнее.

Завтра проверю на реальной базе.

Если что интересное получится - напишу.

Всем спасибо за помощь.
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618048
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
useronforumМоя программа по крайней мере у меня стала грузить процессор намного сильнее.Так это же хорошо. Она делом занялась, а не простаивает.
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618054
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft , крепкие нервы....
...
Рейтинг: 0 / 0
Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
    #38618218
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmiksoft , крепкие нервы....+1
...
Рейтинг: 0 / 0
25 сообщений из 85, страница 2 из 4
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Быстрое попеременное чтение и изменение BLOB-записей таблицы в базе данных MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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