MySQL: выгрузка результата запроса в файл

Одним из способов является — воспользоваться встроенным функционалом MySQL. Например так мы выгрузим результат запроса в файл формата csv:

MySQL: вычисление значения на основе предыдущей выборки значения

Дано: в БД пишутся счетчики прошедших через интерфейс байт нарастающим итогом в байтах

Задача: вычислить загрузку канала в мбит/сек

Решение:

В данном случае нам поможет оконная функция LAG, которая позволяет затаскивать к текущему значению выборки, предыдущее. Например так:

Insert или Update если не уникальная запись

Маленькая напоминалка . Синтаксис pgsql чуть отличается от mysql.

Задача: если запись не уникальна в таблице, то просто обновить дату последнего обновления.

MySQL:

PostgreeSQL:

Уникальным должен быть объявлен столбец ssid

Как постранично (порционно) листать результат запроса в 1С (ака LIMIT x,y в MySQL)

Большая беда MSSQL и как следствие 1С — отсутствие возможности порционно листать записи результата запроса как в MySQL. В результате рождаются такие монстроузные алгоритмы как ниже (код не мой):

Если вкратце, то алгоритм следующий:

  1.  Делаем выборку ВСЕХ записей, определяя, с какой записи было начало предыдущей страницы
  2. Начиная с этой записи, делаем выборку N записей
  3. Передаем результат

Интересно будет посмотреть как этот алгоритм будет вести себя при миллионах записей..

 




Восстановление только одной таблицы из бекапа MySQL

Довольно частая ситуация: есть бекап базы. Развертывать его целиком чтобы посмотреть данные одной таблицы? А если он большой это может занять продолжительное время. Есть вариант с использованием sed:

В результате выполнения будет сформирован файл содержащий только таблицу usbox_services. Ну а далее его уже заливаем стандартно..




1 2 3 13