En teoría, mySQL ahora está limitado a 4096 columnas en una tabla (un poco menos teniendo en cuenta otras restricciones, es decir, valores NULL predeterminados, etc.). Entonces, tiene un margen bastante grande. Personalmente, en un desarrollador web trato de mantener el número de columnas <50. Vi tablas con más de 100 columnas y funcionó, pero es muy difícil mantener tales tablas. No tiene que buscar en esas columnas, considere serializar en la matriz php y almacenar valores en TEXTO. Es más rápido y más flexible.