Переміщення деяких коментарів із обговорення у відповідь із переформулюванням та переформатуванням.
В основному, це зводиться до того, що якщо у вас є надзвичайно екстремальний випадок, їх насправді не потрібно "збирати сміттям". Якщо ви ніколи їх не отримуєте, то не має значення, вони там чи ні.
Дивіться, перехідні процеси за замовчуванням зберігаються в таблиці параметрів. У базовій установці в таблиці параметрів буде, можливо, 100 записів. Кожен перехідний додає ще два записи, але навіть якщо у вас їх тисячі, вони не впливають на швидкість сайту, оскільки вони не завантажуються автоматично.
При запуску WordPress завантажує параметри в пам'ять, але він завантажує лише параметри, у яких увімкнено прапор автозавантаження. Тимчасові не отримують цього, і тому не завантажуються в пам'ять. Тільки тимчасові, які фактично використовуються пізніше, понесуть витрати.
З точки зору бази даних, таблиця параметрів містить індекси як Id параметра, так і імені параметра. Перехідні файли завжди завантажуються на основі імені (ключа), і тому пошуки для них завжди прості, вибираються на одному унікальному значенні ключа. Таким чином, пошук є O (log (n)) і надшвидкий. З Big-O журналу (n) вам доведеться потрапляти в мільйони і мільйони рядків, перш ніж це стане помітним. Відверто кажучи, накладні витрати в налаштуванні та вилученні запиту, а також фактична передача даних, значно довші. Сам запит працює порівняно з нульовим часом порівняно. Тому просто наявність зайвих невикористаних рядків не впливає ні на що, крім використання додаткового місця на диску.
Індексація в базах даних - одна з тих глибоко читаних ідей, які не мають сенсу людям, які насправді не розуміють, що відбувається за лаштунками. Бази даних розроблені для швидкого пошуку даних з нуля і можуть обробляти подібні речі без проблем. Це досить вдале прочитання: http://en.wikipedia.org/wiki/Index_(database )
Тепер очищення найбільш очевидним способом (виклик SQL DELETE на них) насправді не видаляє їх із бази даних. Він просто видаляє їх з індексу і позначає рядок як "видалено". Знову ж таки, саме так працюють бази даних. Щоб фактично очистити простір на диску, вам слід продовжити і робити ОПТИМІЗАЦІЮ ТАБЛИЦІ після цього, і це не швидка операція. На це потрібен час. Напевно, більше часу, ніж варто. Це, мабуть, недостатньо, щоб загалом заощадити час процесора.
Якщо у вас є певний випадок, який спричиняє постійне введення нових перехідних процесів, які не використовуються, тоді вам потрібно знайти основну проблему. Що вставляє ці перехідні? Чи використовують клавішу, що змінюється або мутує? Якщо так, то плагін або код, що викликає це, слід виправити, в основному, не робити цього. Це буде корисніше, тому що, ймовірно, код, який не створює їх належним чином, також не отримує їх, і, таким чином, виконує більше роботи, ніж це доводиться робити.
З іншого боку, може бути випадок, коли створюються перехідні періоди для чогось подібного до кожної посади. Це дійсно може бути цілком прийнятним. Я роблю це сам у SFC, щоб зберігати вхідні коментарі з Facebook. Кожна публікація пов'язана з потенційним перехідним періодом, що означає два додаткових рядки на посаду. Якщо у вас є 10 000 повідомлень, у таблиці параметрів (зрештою) у вас буде 20k рядків. Це не погано чи повільно, оскільки, знову ж таки, різниця між 100 рядками та 20 000 рядками є дуже малою, що стосується баз даних насправді. Це все індексовано. Це швидко, як чорт. Суб-мілісекунди.
Коли ви почнете збиратися в мільйони рядків, то я б хвилювався. Коли розмір таблиці параметрів збільшується вище сотень мегабайт, то я буду досить стурбований, щоб детальніше ознайомитися. Але взагалі це не проблема, окрім крайніх випадків. Це, звичайно, не проблема для чогось меншого, ніж щось на зразок великого сайту новин із сотнями тисяч публікацій. І для будь-якого сайту, достатньо великого, щоб це могло бути проблемою, ви повинні використовувати зовнішній кеш об'єктів, і в цьому випадку перехідні процеси автоматично зберігаються там, а не в базі даних.