Самый быстрый способ получить уникальную запись в MySQL: строка против float против 2 идентификаторов - PullRequest
1 голос
/ 05 февраля 2012

Мне нужно проверить, существует ли конкретная запись в (потенциально) большой базе данных (миллионы записей).

Я могу выбрать уникальную идентификацию записи с:

  • 2 целых числа (пример: 231321 и 312309)
  • 1 число с плавающей запятой (комбинация двух целых чисел. Пример: 231321.312309)
  • 1 строка (комбинация двух целых чисел. Пример: '231321 @ 312309')

Один из этих трех вариантов лучше других?

Спасибо!

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Используйте 2 целых числа.

Обоснование:

  • В зависимости от фактического целочисленного диапазона, вы не сможете хранить 2 целых числа в одном числе без потери точности.
  • Строка - это пустая трата пространства.
  • И для float, и для строки вы не сможете индексировать (и, следовательно, эффективно осуществлять поиск) второе целое число, если вам когда-либо понадобится.
  • Кроме того, существует философский аргумент о атомарности , и что его нарушение фактически нарушает 1-ую нормальную форму.
0 голосов
/ 05 февраля 2012

Ну, я бы не стал использовать строку только потому, что она занимает больше места и требует больше данных для сравнения.Я не думаю, что действительно будет иметь значение, какой из вариантов номера вы выберете.Просто убедитесь, что вы бросили УНИКАЛЬНЫЙ ИНДЕКС на поле (поля), и вы должны хорошо идти.

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