Erst etwas mehr Flammen, dann eine echte Lösung ...
Ich stimme größtenteils mit den Flammen überein, die bereits auf dich geworfen wurden.
Ich bin mit der Schlüsselwertnormalisierung nicht einverstanden. Fragen sind schrecklich. Leistung noch schlimmer.
Eine "einfache" Möglichkeit, das unmittelbare Problem (Beschränkung der Spaltenanzahl) zu umgehen, besteht darin, die Daten vertikal zu partitionieren. Nehmen wir zum Beispiel 5 Tabellen mit jeweils 400 Spalten. Sie würden alle den gleichen Primärschlüssel haben, mit der Ausnahme, dass AUTO_INCREMENT derselbe sein könnte.
Vielleicht ist es besser, sich für ein Dutzend Felder zu entscheiden, die am wichtigsten sind, und sie in die Haupttabelle aufzunehmen. Gruppieren Sie dann die Sensoren auf logische Weise und ordnen Sie sie mehreren parallelen Tabellen zu. Mit der richtigen Gruppierung müssen Sie möglicherweise nicht immer alle Tabellen verbinden.
Indizieren Sie einen der Werte? Müssen Sie danach suchen? Wahrscheinlich suchen Sie nach Datum und Uhrzeit?
Wenn Sie viele Spalten indizieren müssen - punt.
Wenn Sie ein paar indizieren müssen, geben Sie sie in die Haupttabelle ein.
Hier ist die echte Lösung (falls zutreffend) ...
Wenn Sie nicht die große Anzahl von Sensoren indizieren müssen, machen Sie keine Spalten! Ja, du hast mich gehört. Sammeln Sie sie stattdessen in JSON, komprimieren Sie JSON, und speichern Sie sie in einem BLOB-Feld. Sie sparen eine Menge Platz; Sie haben nur eine Tabelle, bei der es keine Probleme mit Spaltenbeschränkungen gibt. usw. Ihre Anwendung wird dekomprimiert und verwendet dann JSON als Struktur. Erraten Sie, was? Sie können eine Struktur haben - Sie können die Sensoren in Arrays, Multilevel-Elemente usw. gruppieren, so wie es Ihre App möchte. Ein weiteres "Feature" - es ist unbefristet. Wenn Sie weitere Sensoren hinzufügen, müssen Sie die Tabelle nicht ÄNDERN. JSON ist auf diese Weise flexibel.
(Die Komprimierung ist optional. Wenn Ihr Dataset sehr umfangreich ist, hilft dies beim Speicherplatz und damit bei der Gesamtleistung.)