MySQL Math - что быстрее, INTEGER или FLOAT? - PullRequest
0 голосов
/ 20 июля 2010

Я выполняю некоторые запросы, требующие большого количества соединенных строк, для которых некоторые поля добавляются и умножаются вместе.

Я знаю, что это немного расплывчато, но мой вопрос в том, какой числовой тип данных самый быстрыйдля этих типов операций?

Будет ли FLOAT быстрее, чем DOUBLE, поскольку DOUBLE равен 8 байтам, а FLOAT равен 4?

Будет ли INT быстрее, чем FLOAT (даже если они оба 4 байта)?* Будет ли DECIMAL быстрее, чем FLOAT?

Вот еще немного информации: Решаемая мною проблема позволяет мне сохранять числа с плавающей запятой как BIGINTEGER ... Я могу просто умножить число на 100000 перед вставкойих.Я был бы готов сделать это, если бы математика BIGINT была быстрее, чем у FLOAT.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 20 июля 2010

Размер байта влияет на получение данных, а не на их вычисление.Индексы могут улучшить это в случае необходимости, но будут замедлять операторы UPDATE / INSERT / DELETE.

Я предлагаю выбрать тип данных, который отражает операции, которые вы собираетесь использовать.Если вам вообще не нужна точность, нет причин для использования DECIMAL или FLOAT.

0 голосов
/ 20 июля 2010

Обычно целочисленные операции выполняются быстрее (и точнее).Поскольку я на самом деле не работаю в MySQL, я не могу сказать наверняка - но я бы, конечно, сделал ставку в пользу Integers.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...