Я должен вставить некоторые значения в базу данных из моего PHP-кода. Но время выполнения скрипта очень дорого, поэтому я должен закончить свой скрипт как можно быстрее. Поэтому мне просто нужно «сказать» мой сценарий, чтобы вставить значения в базу данных, и мне все равно, сколько времени потребуется для этого. Похоже, я могу использовать cURL
отправить команду некоторым *.php
файл, который сделает вставку, но это лучший и правильный способ?
Ваши вопросы звучат так, будто вы собираетесь попробовать сделать OLTP с IQ. Не то, для чего был разработан IQ, но может быть решение для вас:
Поскольку IQ является хранилищем столбцов с большим количеством операций ввода-вывода, когда дело доходит до операторов записи / обновления (медленно для INSERTS (UPDATES), они представили дополнительную функцию управления версиями на уровне строк, называемую RLV с IQ16. (Помните, хранилище столбцов обновление полного столбца после обновления поля) Это позволяет изменять отдельные строки, не дожидаясь, пока IQ запишет полный столбец. После истечения времени ожидания или нескольких изменений IQ автоматически синхронизирует изменения обратно в хранилище столбцов. В инструкциях SELECT результаты хранения столбцов объединяются с изменениями, хранящимися в RLV. Таким образом, он полностью прозрачен для вашего приложения, возможно, с несколькими новыми кодами ошибок;)
Даже если это работает, это, как говорится: это (круто) обходной путь, поэтому он не сделает IQ для вашей базы данных OLTP — IQ хранит базу данных OLAP, необходимую для отчетов о проблемах, — но это помогает вам изменить некоторые данные Быстрее. Тем не менее, вы должны начать проверять Документация RLV как это будет огромно, чтобы вставить все в этот ответ.
Вторым способом может быть установка второй базы данных перед IQ, которая выполняет всю работу OLTP для IQ и синхронизируется с IQ позже на регулярной основе. Это работает только хорошо, если вам просто нужно небольшое подмножество данных в вашей базе данных OLTP. Тем не менее, эта идея похожа на то, что делает RLV, но DIY и он работает с IQ <16.
(поскольку вы не предоставили много подробностей, и это действительно широкая тема, я оставляю подробности о том, как это сделать. Ключевое слово может быть чем-то вроде иностранных баз данных в сочетании с заданиями баз данных)
Вы можете использовать INSERT DELAYED
Команда, если ваша установка позволяет это
Когда клиент использует INSERT DELAYED, он получает нормально с сервера по адресу
один раз, и строка ставится в очередь для вставки, когда таблица не находится в
использовать любой другой поток.