Baza danych MariaDB - optymalizacja

Mam ustawioną bazę MariaDB. Niestety za późno ograniczyłem zbiór encji, które mają się zapisywać. Baza w krótkim czasie się rozrosła. Czy można bezpiecznie usunąć historię dla niepotrzebnych encji i jak? Są tam klucze obce, które blokują usuwanie rekordów z tabeli states.

Skorzystaj z tego:
Wpis w configuration.yaml

recorder:
  db_url: !secret mariadb_url
  purge_keep_days: 5  
  exclude:
    domains:
      - weblink
      - updater
      - input_boolean
      - input_number
      - input_select
      - input_text
      - light
      - media_player
      - sun
      - timer
      - weather

Lista domen:

alarm_control_panel
alert
alexa
automation
binary_sensor
camera
climate
device_tracker
fan
group
image_processing
input_boolean
input_select
light
media_player
person
remote
script
sensor
sun
switch
timer
weather
zigbee2mqtt_networkmap
zone

Narzędzia deweloperskie:

{%- for d in states | groupby('domain') %}
{{ d[0] }}
{%- endfor %}

Lista encji w poszczególnych domenach:

{%- for d in states | groupby('domain') %}
  {% if loop.first %}{{loop.length}} Domains:
  {% endif %}- {{ d[0] }}: {{d[0]|count}}
{%- endfor %}

Lub karta w HA

Kod karty:

type: markdown
content: >
  Domain | Count
     :---|---:
  {% for domain in states | groupby('domain') %} {% set name =
  domain[0].replace('_', ' ') | title %} **{{ name }}** | {{ states[domain[0]] |
  count }} {# leave blank line below otherwise table won't render #}

  {% endfor %} **Total** | {{ states | count }}
card_mod:
  style:
    ha-markdown:
      $:
        ha-markdown-element: |
          table {
            border-spacing: 0;
            width: 100%;
            padding: 8px;
            border-radius: var(--ha-card-border-radius);
          }
          th {
            background-color: var(--state-icon-color);
            color: white;
            padding: 4px;
          }
          th:first-child {
            border-top-left-radius: var(--ha-card-border-radius);
          }
          th:last-child {
            border-top-right-radius: var(--ha-card-border-radius);
          }
          td {
            padding: 4px;
          }
          tr:nth-child(even) {
            background-color: var(--table-row-background-color);
          }

Dzięki, ale mnie nie zrozumiałeś chyba. Od teraz to już ustawiłem sobie listę encji do zapisu historii. Nie chcę jednak usuwać całej dotychczasowej historii, ale usunąć niepotrzebne encje z bazy pozostawiająć historię dla wybranych encji.

https://github.com/home-assistant/frontend/issues/9382

To jest dla mnie za trudne :(. Nie wiem o czym oni tam piszą. Zaryzykuję operacje na bazie danych. Zdejmę klucze obce, usunę niepotrzebne dane i założe klucze ponownie. Liczyłem na to, że ktoś już to robił i ma gotowe skrypty sql na to.