Je suis de l'avis à HommeMoyen. Typiquement, j'ai un projet dont l'une des table contient 115 colonnes. Comme l'a expliqué HommeMoyen, on a la possibilité de spliter cette table en différentes "sous" table mais l'intérêt n'est pas énorme, tant que tu ne charges pas de données lourdes alors que tu n'en a pas besoin. Btw, si demain si tu sens que tu as des problèmes de performances, rien ne t'empêche de réaliser un split lors d'une évolution de l'application. Mais 15 colonnes, c'est rien du tout amha.
Concernant ta dernière question, il s'agit d'une réécriture d'URL. Ce sont bien des variable en GET qui sont modifiées mais les URL sont réécrites pour être simplifiées/réduites : https://fr.wikipedia.org/wiki/.htaccess#R.C3.A9.C3.A9criture_d.27URL