2010-07-19 7 views
0

Je suis en train de faire des requêtes qui nécessitent beaucoup de lignes jointes pour que certains de leurs champs soient ajoutés et multipliés ensemble. Je sais que c'est un peu vague, mais ma question est de savoir quel type de données numériques est le plus rapide pour ces types d'opérations? Float sera-t-il plus rapide que DOUBLE puisque DOUBLE est de 8 octets, et FLOAT est de 4?MySQL Math - quoi de plus rapide, INTEGER ou FLOAT?

Est-ce que INT sera plus rapide que FLOAT (même si elles sont toutes les deux de 4 octets)?

DECIMAL sera-t-il plus rapide que FLOAT?

Voici quelques informations supplémentaires: Le problème que je suis en train de résoudre me permet de stocker les numéros "flottants" en tant que BIGINTEGER ... Je peux simplement multiplier le nombre par 100000 avant de les insérer. Je serais prêt à le faire si les calculs de BIGINT étaient plus rapides que ceux de FLOAT.

Merci.

Répondre

3

La taille des octets a un impact sur la récupération des données, et non sur leur calcul. Les index peuvent l'améliorer si nécessaire, mais ralentiront les instructions UPDATE/INSERT/DELETE.

Je suggère de choisir le type de données qui reflète les opérations que vous allez utiliser. Si vous n'avez pas du tout besoin de précision, il n'y a aucune raison d'utiliser DECIMAL ou FLOAT.

0

En général, les opérations entières sont plus rapides (et plus précises). Comme je ne travaille pas vraiment sur MySQL, je ne peux pas le dire avec certitude, mais je parierais certainement en faveur d'Integers.

Questions connexes