Наконец-то нашли решение проблемы.
Вы можете объявить новый тип и ссылаться на него в typeDef для схемы GraphQL.
В модели mongoose вы можете ссылаться на нее как {type: Array}
TRUNCATE таблица или отключение индексов перед удалением
TRUNCATE TABLE [tablename]
Усечение приведет к удалению всех записей из таблицы без регистрации каждого удаления в отдельности.
1) Усеченная таблица
2) сценарий из таблицы, удаление и повторное создание таблицы
Чтобы добавить к другим ответам, если вы хотите сохранить данные за прошлый день (или прошедший месяц или год или что-то еще), затем сохранить их, выполните таблицу TRUNCATE TABLE, а затем вставьте ее обратно в исходную таблицу:
SELECT
*
INTO
tmp_My_Table
FROM
My_Table
WHERE
<Some_Criteria>
TRUNCATE TABLE My_Table
INSERT INTO My_Table SELECT * FROM tmp_My_Table
Следующее, что нужно сделать, это спросить себя, почему вы вставляете всю эту информацию в журнал, если никто не заботится об этом. Если вам это совсем не нужно, отключите ведение журнала у источника.
TRUNCATE TABLE [tablename]
удалит все записи без регистрации.
В зависимости от того, сколько вы хотите сохранить, вы можете просто скопировать записи, которые вы хотите, во временную таблицу, обрезать таблицу журнала и скопировать записи временной таблицы обратно в таблицу журнала.
Если вы можете определить оптимальный x, он будет постоянно зацикливаться на удалении с максимальной скоростью. Установка количества строк ограничивает количество записей, которые будут удаляться на каждом этапе цикла. Если файл журнала становится слишком большим; вставьте счетчик в цикл и обрежьте каждый миллион строк или около того.
set @@ rowcount x пока 1 = 1 Начните
удалить из таблицы Если @@ Rowcount = 0 break
End
Измените режим ведения журнала на БД на простой или массовый журнал, что уменьшит некоторые накладные расходы на удаление.