Intereting Posts
Измененные размеры носителей (в тире), а не обновление существующих изображений / сообщений Могу ли я изменить право собственности на свой плагин? wp_redirect () не работает над отправкой формы с помощью init hook Удалять все возможности по отдельному методу, а не включать в метод Отображать авторов в петле сетки Не удалось отключить плагин с помощью deactivate_plugins () Как фильтровать термины из пользовательской таксономии по значению usermeta на всех экранах и шаблонах Как использовать несколько значений флажков для работы в функции и вставки значений в базу данных Costum Meta для отображения сегодняшних событий / рекламных акций Соединение WPNeo Stripe не работает Как получить количество раз, когда был воспроизведен аудиофайл Реализация wp json-rest api Маскировка wp-content / themes / name / images в каталог изображений с использованием htaccess Перенаправление плагинов после активации Как я могу использовать wp_get_image_editor для изменения размера изображения

Когда использовать пользовательские таблицы таблиц или add_option?

У меня есть довольно прямой вопрос. Когда становится слишком много данных для использования add_option, update_option и т. Д., А вместо этого используется таблица пользовательских БД?

Например, если плагин хранит тысячи и тысячи символов данных с помощью add_option и т. Д., Существует ли максимум, который он может обрабатывать до того, как он начнет создавать проблемы?

Мой плагин использовался для создания собственной таблицы БД, но он создал много проблем, в которых некоторые настройки пользователей не работали (особенно на серверах на базе Microsoft на базе Microsoft), и многие другие пользователи почувствовали необходимость связаться со мной и посоветовать мне вместо использования add_option. Я последовал их рекомендациям, и теперь плагин использует эти функции.

Тем не менее, я прошел долгий путь в своих способностях кодирования с тех пор и в свою очередь начал перепроектировать плагин. Теперь у него гораздо больше данных, которые нужно сохранить с помощью add_option. Даже до более чем 10000 + персонажей стоит, и я начинаю задаваться вопросом, не вызовет ли это каких-либо проблем.

Solutions Collecting From Web of "Когда использовать пользовательские таблицы таблиц или add_option?"

Для записи я никогда не буду рекомендовать разработчикам использовать пользовательские таблицы базы данных. Да, они просты в использовании, но вы теряете 100% абстракции данных, предоставляемой WordPress.

add_option() / update_option() / get_option() – базовые функции значения ключа. Они хранят данные в поле MySQL LONGTEXT. LONGTEXT может хранить более 4 миллионов символов … так что опция 10000+ символов определенно возможна.

Иногда настраиваемые таблицы базы данных неизбежны. Если у вас есть тип данных (например, «задания») со многими различными свойствами, и вы ожидаете, что вам придется выполнять сложные фильтры по этим данным (например, «показать мне все задания в Мэриленде, которым требуется <5 лет опыта и заплатить более $ 80 тыс. и использовать либо навыки программирования, либо дизайн »), почти невозможно масштабировать до миллионов строк без правильно индексируемой таблицы.

Поэтому ответ на ваш вопрос действительно зависит от типа данных, которые вы храните. Таблица опций отлично работает для данных типа конфигурации (которая читается только одним способом), но не очень хороша для данных, которые необходимо запрашивать разными способами.

В зависимости от типа данных вы можете рассмотреть возможность регистрации настраиваемого типа сообщений. Вот хороший учебник: http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress . CPT работают очень хорошо, чтобы хранить довольно большие объемы данных, которые являются более или менее пост-подобными в структуре (не слишком много разных метаданных, не требуют логики отношений между позициями). Это в некотором роде лучшее из обоих миров: вы получаете возможность делать довольно сложные запросы, как вы делали бы в пользовательской таблице (через WP_Query), в то же время получая преимущество «абстракции данных» WP, поскольку @EAMann предлагает ,