J'ai une table d'utilisateurs simples, je suppose que les utilisateurs maximums que je vais avoir est de 300 000.
Actuellement, j'utilise: p> bien sûr que j'ai De nombreuses autres tables pour lesquelles les utilisateurs (ID) sont une clé étrangère. P> J'ai lu que, étant donné que l'ID ne va pas utiliser le maximum maximum d'int, il est préférable d'utiliser:
MIXIMINTY et il donnera une meilleure performance. P> est-il vrai? P> (J'utilise MySQL sur Windows Server 2008) P> P> P>
4 Réponses :
Il ne devrait pas y avoir de différence de performance, le seul avantage que vous obtenez est une taille de table légèrement plus petite. Quoi qu'il en soit, pour seulement 300 000 rangées, vous ne devriez pas avoir à vous soucier. P>
qui s'appelle micro-optimisation et non un problème. comme pour le "300k max" - dans le nombre réel de vie a tendance à se développer de manière inattendue. Pourquoi creuser un piège pour vous-même? P>
Essayez de vous demander (vous-même en premier lieu) des questions de performance basées uniquement sur l'expérience réelle, pas l'imagination. Et
Je envisagerais d'utiliser Mimoriint parfois .. sur des rangées 300k .. Mideminint vous donne assez de place jusqu'à 16 millions de lignes (non signées). P>
Il s'agit non seulement de "taille de table plus petite" lorsque vous utilisez des index. La différence peut être énorme Sur une tables de rangées de 27 m ... Modification de 2 colonnes de Int vers MioriMinint m'a sauvegardé 1 Go (index + Données de table) afin qu'il soit passé de 2,5 Go à 1,5 Go. P>
Si vous vous souciez de la micro-optimisation de la vitesse, utilisez Un accès de lecture de disque lira un bloc d'octets. La lecture de 4 octets sera donc la même que la lecture de 3 octets. P>
mais depuis 3 octets entiers ne sont pas originaux pour les processeurs, int code>. p>
Mi-MioriMint doit être converti avant de pouvoir être utilisé (memcpy dans un entier de 4/8 octets), entraînant une surcharge, tandis que 4 octets entiers sont natif pour les processeurs et peut être utilisé directement. P>
Voir Stackoverflow.com / Questions / 1157371 / ...