За последние 24 часа нас посетили 41706 программистов и 7376 роботов. Сейчас ищут 1504 программиста ...

База 4 млн строк. Update поля сложной функцией

Тема в разделе "PHP для новичков", создана пользователем Segr, 7 июн 2018.

Метки:
  1. Segr

    Segr Новичок

    С нами с:
    7 июн 2018
    Сообщения:
    2
    Симпатии:
    0
    Есть большая база MySQL в 4 млн строк - поля A, B, C, D

    A, B, C, - имеют значения, D - пустое, его надо заполнить выражением MyPHPFunction (A, B, C)

    Хорошо бы конечно циклом пройтись, так сказать построчно по базе, но как сделать не знаю,
    да и цикл по базе в 4 млн записей будет очень медленно работать.
    Подскажите, как как реализовать такой алгоритм.
    1) Выбираем поля D=="", то есть пустое
    Делаем UPDATE table_name SET D= MyPHPFunction (A, B, C)
    Переходим к следующему пустому полю D==""
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    а что внутри функции MyPHPFunction ?
    может быть можно средствами MySql сделать тоже самое?
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    А если то, что указал @runcore невозможно, запустите такой скрипт с циклом из консоли, и пойдите чайку попить.
    --- Добавлено ---
    Кто тебя пустил с базой такой работать, если ты основ не знаешь? https://php.ru/manual/mysqli.quickstart.statements.html, к примеру
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Напарсил. Хотя скорее скачал напарсенное.
     
  5. Segr

    Segr Новичок

    С нами с:
    7 июн 2018
    Сообщения:
    2
    Симпатии:
    0
    Нет, невозможно, там куча вычислений, типа определить номер лунного дня.
    --- Добавлено ---
    Да, напарсил с 6 источников, заказанным на Кворке парсером на Go, потом очистил от мусора,
    уникализировал строки, импортировал, настроил индексы для быстрого поиска.
    Работа заняла более месяца.
    Я начинал программировать еще на перфокартах, последний язык для БД, что юзал - foxpro.
    По моему вопросу есть подсказки или дельные советы?
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Тогда

    В консоли нет ограничения на время исполнения скрипта.