Сбросить идентификаторы сообщений до менее чем 64-битного целого

Я работаю Wordpress уже много лет и имею около 26000 сообщений.

В какой-то момент мои идентификаторы сообщений превысили 32-битное целое число, и теперь я заблокирован в использовании Wordpress в 64-разрядной системе.

Я вижу сообщения с идентификаторами, такими как 4863166253.

Я хотел бы переключить мой хостинг на низкомощный сервер, такой как малиновый pi, который 32-битный.

Есть ли способ сбросить идентификаторы сообщений, чтобы они были ниже 2 миллиардов?

Вы можете прочитать мой отчет об ошибке Wordpress здесь

Спасибо.

8 голосов | спросил Mark Waters 6 SatEurope/Moscow2014-12-06T13:05:30+03:00Europe/Moscow12bEurope/MoscowSat, 06 Dec 2014 13:05:30 +0300 2014, 13:05:30

1 ответ


5

Этот ответ поможет мне решить проблему, если мне придется столкнуться с этим, это не ответ , но одна из возможностей.

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

Если у вас есть 26 000 сообщений, но сообщение id, например, 4,863,166,253, есть два миллиона идентификаторов, которые не используются.

Чтобы решить эту проблему, вам необходимо:

Шаг 1

  • удалить неиспользуемые идентификаторы сообщений. (разбитые сообщения, изменения)
  • удаленные сироты публикуют мета-записи
  • удалить записи

Есть плагины для области, но это можно сделать с помощью простых необработанных SQL-запросов.

Шаг 2

Сбросить идентификаторы сообщений, чтобы изменить их, чтобы начать с 1. Это можно сделать с помощью комбинации PHP + MySQL: если вы получите столбец столбца в качестве массива (например, через $wpdb->get_col()), ключи массива (с шагом 1) будут новыми сообщениями для сообщений, чей текущий идентификатор находится в значениях массива.

Обратите внимание, что идентификаторы сообщений должны быть изменены в:

  • столбец
  • Таблица таксономии отношение
  • post meta table

Я предлагаю вам запустить такую ​​процедуру для подмножеств сообщений, используя разбитые на страницы результаты, а не на тысячи строк в целом.

Шаг 3

Установите AUTO_INCREMENT index на столбе столбец, чтобы отправить сообщение + 1.

Готово

В конце этого процесса более высокий идентификатор сообщения должен быть легко внутри 32-битного целочисленного предела.

Предотвращение превышения лимита почты

  • Отключите пост-версии или ограничьте их числом (см. Codex ).

  • Переместить старые сообщения (2 года? 5?) в отдельный блог в многоузловой среде, например. site1-archive.example.com для сообщений в site1.example.com.

    Это можно сделать с помощью экспортера WordPress с параметром диапазона дат.

    Если вы планируете сделать это, лучше, если сделать до сброса сообщений ids (шаг № 2 выше), таким образом, оба двух блога могут иметь более низкий идентификатор сообщения.

    Конечно, после этого вы также должны создать способ перенаправления архивированных ссылок на новые URL-адреса.

ответил gmazzap 6 SatEurope/Moscow2014-12-06T16:45:29+03:00Europe/Moscow12bEurope/MoscowSat, 06 Dec 2014 16:45:29 +0300 2014, 16:45:29

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132