2016-01-29 2 views
0

Я разрабатываю систему доступа на основе токенов, и у меня есть то, что кажется сложным вопросом.Производительность MySQL (INT, DECIMAL, VARCHAR)

токены будет большим от чего прийти для того чтобы достигнуть

Size = logged-users*(1/break-effort)*RUID-space 

Оценочные 16 байт. Эти токены должны храниться в базе данных mySQL.

Я может передавать их trought сообщения:

  • десятичных (39 байт)
  • шестигранных-закодирован (32 байта)
  • 62based (а-Za-z0-9) (22 байт)

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

  • ДЕСЯТИЧНАЯ (39,0)
  • УАКСНАК (22)
  • два BIGINT (первый индексируется второй не)
+1

Вы можете сделать тест производительности для этого – etalon11

+0

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

ответ

0

MySQL performance test

Это то, что я узнал. VARCHAR в любом случае является наихудшим для SELECT WHERE.

+0

Вероятно, вы должны использовать 'VARBINARY', а не' VARCHAR', если ваши данные чувствительны к регистру. –

+0

Я сделал, но тесты BINARY хуже, чем VARCHAR, только в MyISAM немного лучше! – TheBook

Смежные вопросы