Önce biraz daha yanan, sonra gerçek bir çözüm ...
Çoğunlukla sana atılmış olan alevleri kabul ediyorum.
Anahtar-değer normalleşmesine katılmıyorum. Sorguların sonucu korkunçtur; performans daha da kötü.
Acil sorunu önlemenin (sütun sayısının sınırlandırılması) bir 'basit' yolu, verileri 'dikey olarak bölmektir'. Örneğin, her biri 400 sütunlu 5 tablo var. Biri AUTO_INCREMENT olması dışında hepsinde aynı birincil anahtar vardır.
Belki de daha iyisi, en önemli düzine alanlara karar vermek, onları “ana” masaya koymak olacaktır. Ardından sensörleri mantıklı bir şekilde gruplandırın ve birkaç paralel tabloya yerleştirin. Doğru gruplama ile, her zaman bütün tablolara KATILMAK gerekmeyebilir.
Değerlerden herhangi birini indeksliyor musunuz? Onları aramaya ihtiyacınız var mı? Muhtemelen tarihini araştırıyorsun?
Çok fazla sütun indekslemeniz gerekiyorsa - punt.
Eğer birkaç tane indekslemeniz gerekirse - 'ana tabloya koyun.
İşte gerçek çözüm (eğer geçerliyse) ...
Dizine eklenmiş geniş bir sensör dizisine ihtiyacınız yoksa, sütun yapmayın! Evet beni duydun. Bunun yerine, onları JSON'da toplayın, JSON'u sıkıştırın, bir BLOB alanına kaydedin. Bir ton alan kazandıracak; sütun sınırı sorunu olmayan tek bir tablonuz olacak; Uygulamanız sıkıştırılmayacak ve daha sonra JSON'u yapı olarak kullanacaktır. Bil bakalım ne oldu? Yapıya sahip olabilirsiniz - sensörleri diziler, çok düzeyli malzemeler vb. Halinde gruplayabilirsiniz, tıpkı uygulamanızın istediği gibi. Başka bir 'özellik' - açık uçlu. Daha fazla sensör eklerseniz, tabloyu DEĞİŞTİRMenize gerek yoktur. JSON bu şekilde esnekse.
(Sıkıştırma isteğe bağlıdır; veri kümeniz çok büyükse, disk alanıyla ve dolayısıyla genel performansla ilgili yardımcı olacaktır.)