Идентификатор пользователя Facebook подходит 2^32.. который моим количеством это 4294967296.
диапазон неподписанного интервала mySQL от 0 до 4294967295 (который равняется 1 короткому - или моя математика является неправильной), и диапазон ее неподписанного большого интервала от 0 до 18446744073709551615
интервал = 4 байта, bigint = 8 байтов
ИЛИ
Я храню его как строку?
varchar (10) =? байты
Как это произведет эффективность, я слышал что числа mysql дескриптора намного лучше, чем строки (мудрая производительность). Таким образом, что делает Вас, парни рекомендуют
Поскольку Facebook присваивает IDS, а не вы, вы должны использовать Bigints.
Facebook не назначает идентификаторы последовательно, и я подозреваю, что у них есть какой-то режим для назначения чисел.
Я недавно исправил именно эту ошибку, так что это настоящая проблема.
Я бы сделал его без знака, просто потому, что это то, что есть.
Я бы не использует строку. Это делает сравнения болезненными и вашими индексами Clunusier, чем они должны быть.
В Perl 99 | | 44
возвращает 99
, поскольку | |
является «коротким замыканием» и если его первый аргумент имеет значение true в логическом контексте, он просто возвращает его. печать
печать 99.
В C результат | |
является логическим, что передается в printf
приводит либо к 1, либо к 0. Это также короткое замыкание, так что 44 даже не оценивается.
Вы запросили определенный сценарий, но если это для организации музыки, возможно, вы захотите получить EasyTAG . Он имеет чрезвычайно специфические и мощные правила, которые можно настроить для организации музыки, как бы вы ни хотели:
(источник: sourceforge.net )
Это правило гласит: "предположим, что имена моих файлов находятся в структуре" [исполнитель] - [название альбома ]/[ номер трека] - [название] ". Затем вы можете пометить их как таковые, или переместить файлы в любой новый образец, или сделать почти все, что угодно.
-121--4904012-Ваша математика немного неправильная... помните, что наибольшее число, которое можно хранить в N байтах, равно 2 ^ (N) - 1... не 2 ^ (N). Существует 2 ^ N возможных чисел, однако наибольшее число, которое можно сохранить, 1 меньше.
Если Facebook использует неподписанную большую int, вы должны использовать это. Вероятно, они не назначают их последовательно.
Да, с варчаром можно сойти... однако это было бы медленнее (но, вероятно, не так много, как вы думаете).
Ты больше не можешь использовать INT. Прошлой ночью у меня было два идентификатора пользователя, которые максимально использовали INT(10).
Вот еще один способ сделать это с помощью ogrid
, который немного быстрее:
import numpy as np
import Image
w, h = 600, 800
sq = 15
color1 = (0xFF, 0x80, 0x00)
color2 = (0x80, 0xFF, 0x00)
def use_ogrid():
coords = np.ogrid[0:w, 0:h]
idx = (coords[0] // sq + coords[1] // sq) % 2
vals = np.array([color1, color2], dtype=np.uint8)
img = vals[idx]
return img
def use_fromfunction():
img = np.zeros((w, h, 3), dtype=np.uint8)
c = np.fromfunction(lambda x, y: ((x // sq) + (y // sq)) % 2, (w, h))
img[c == 0] = color1
img[c == 1] = color2
return img
if __name__ == '__main__':
for f in (use_ogrid, use_fromfunction):
img = f()
pilImage = Image.fromarray(img, 'RGB')
pilImage.save('{0}.png'.format(f.func_name))
Вот результаты времени:
% python -mtimeit -s"import test" "test.use_fromfunction()"
10 loops, best of 3: 307 msec per loop
% python -mtimeit -s"import test" "test.use_ogrid()"
10 loops, best of 3: 129 msec per loop
-121--2111426- Я не знаю о таких инструментах. Если бы у меня была куча услуг RESTful, я бы рассмотрел возможность использования Open Rasta - она имеет гораздо больше возможностей, чем ASP.NET MVC. Другой разумной альтернативой является WCF REST Starter Kit .
UPDATE: Вот хорошее сравнение доступных RESTful implementations в .Net .
-121--3023121-Если вы не ожидаете, что более 60% населения мира зарегистрируются, int должен это сделать?
Я бы просто придерживался INT. Это просто, он маленький, он работает, и вы всегда можете изменить размер столбца на больший в будущем, если вам нужно.
FYI:
VARCHAR (n) ==> переменная, до n + 1 байт
CHAR (n) ==> фиксированная, n байтов