Шаблон:Data/ЧТМ: различия между версиями
| [отпатрулированная версия] | [отпатрулированная версия] |
Lord (обсуждение | вклад) Нет описания правки |
Lord (обсуждение | вклад) Нет описания правки |
||
| Строка 12: | Строка 12: | ||
; Технические страницы | ; Технические страницы | ||
* {{Модуль|Cron/GenerateStats}} — служебный скрипт, предназначенный для агрегации, расчёта и кэширования полной базы данных финального турнира ЧТМ. | * {{Модуль|Cron/GenerateStats}} — служебный скрипт, предназначенный для агрегации, расчёта и кэширования полной базы данных финального турнира ЧТМ. | ||
* {{Модуль|Data/GrandStats.json}} — огромная бандура для хранения генерируемого <code>Cron/GenerateStats</code> машинного кода. | * {{Модуль|Data/GrandStats.json}} (<span class="plainlinks">'''[{{SERVER}}/index.php?title=Data/GrandStats.json&action=edit править]'''</span>) — огромная бандура для хранения генерируемого <code>Cron/GenerateStats</code> машинного кода. | ||
== Обновление баз данных == | == Обновление баз данных == | ||
Версия от 05:19, 6 июня 2026
Список баз данных
- База данных финального турнира ЧТМ (Data)
2006 • 2010 • 2014 • 2018 • 2022 • 2026 • 2030 • 2034 • 2038 • 2042 • 2046
- База данных результатов всех турниров (Data/Tournaments)
2006 • 2009 • 2010 • 2013 • 2014 • 2015 • 2017 • 2018 • 2019 • 2020 • 2021 • 2022 • 2023 • 2024 • 2025 • 2026 • 2027 • 2028 • 2029 • 2030 • 2031 • 2032 • 2033 • 2034 • 2035 • 2036 • 2037 • 2038 • 2039 • 2040 • 2041 • 2042 • 2043 • 2044 • 2045 • 2046 • 2047 • 2048
- Прочие базы данных
- Data/Teams — словарь команд.
- Data/RatingCalc — единое хранилище словарей очков, рангов и ручных переопределений для движка подсчёта рейтинга.
- Технические страницы
- Cron/GenerateStats — служебный скрипт, предназначенный для агрегации, расчёта и кэширования полной базы данных финального турнира ЧТМ.
- Data/GrandStats.json (править) — огромная бандура для хранения генерируемого
Cron/GenerateStatsмашинного кода.
Обновление баз данных
Пока актуально только для финального турнира ЧТМ, но планируется расширить.
- Обновление
- Обновите или исправьте статистику на нужной подстранице, убедитесь, что нет ошибок синтаксиса.
- Откройте служебную страницу Развёртка шаблонов и вставьте следующий код:
{{#invoke:Cron/GenerateStats|main}} - Целиком скопируйте json-массив, перейдите на страницу Модуль:Data/GrandStats.json, удалите всё её содержимое и замените на только что скопированный код.
JSON-массивы занимают несколько мегабайт и хранить в SQL горы устаревшего нечитаемого кода абсолютно бессмысленно. Поэтому необходимо периодически чистить кэш от старых расчётов следующим образом:
Шаг 1. Находим old_id этих гигантских правок
Выполните следующий SQL-запрос:
SELECT old_id, LENGTH(old_text) AS size, old_flags
FROM text
ORDER BY size DESC
LIMIT 10;
Поскольку обычные статьи весят килобайты, этот запрос мгновенно выведет вам топ самых тяжелых правок за всю историю вашей вики. На первых строчках вы увидите ваши три правки размером ~2800000 байт.
Запишите их old_id.
Шаг 2. Обнуляем их вес (Освобождаем БД) Теперь мы просто превращаем этот машинный код в пустой, но валидный JSON-объект, чтобы не сломать парсер MediaWiki, если кто-то случайно откроет эту правку в истории. Выполните:
UPDATE text
SET old_text = '{"info": "Любой текст."}',
old_flags = 'utf-8'
WHERE old_id IN (НОМЕР, НОМЕР, НОМЕР);
(Замените цифры в скобках на те old_id, которые вы нашли на первом шаге).
Почему old_flags = 'utf-8'?
Иногда MediaWiki сжимает старые тяжелые правки и ставит флаг gzip или utf-8,gzip. Если мы заменяем сжатый бинарник на обычный текст, флаг gzip нужно обязательно убрать, иначе вики попытается «разархивировать» наш новый текст и выдаст ошибку. Флага utf-8 или вообще пустой строки '' будет достаточно.