Извините, я просто играю с mysql и учась, когда я иду. Вот моя проблема. У меня есть таблица (в python) с номерами значений (например, {3: 1,3: 2,3: 3}). Я хочу использовать базу данных как хранилище сохранения этих переменных (поскольку они не полностью соответствуют памяти), но я хочу попытаться сделать это как можно быстрее.Могу ли я сделать два столбца уникальными друг для друга?
В настоящее время я просто использую один столбец (индексированный) в mysql, и каждая запись в словаре получает свою собственную строку. Я хотел попытаться проверить, могу ли я ускорить чтение/запись, если бы я использовал два столбца INT вместо столбца CHAR, но мне нужны оба столбца для того, чтобы быть уникальными друг для друга. В приведенном выше примере все данные уникальны, и если я добавлю еще 3 = 1, то он просто перезапишет существующее значение, но 3 = 4 создаст новую запись. Как я могу реплицировать это в mysql?
Также ли моя логика об ускорении имеет смысл или будет ли выбор на двух столбцах фактически более дорогим, чем один?
Я строю это с нуля, поэтому вам не нужно работать в рамках моего существующего решения, я очень гибкий, чтобы использовать любой подход, который работает.
Спасибо!
Вы ищете композитный первичный ключ? – Asdfg
Я бы предложил разбивать 'varchar' на два' ints' ... не по соображениям производительности, а для [правильной нормализации] (http://en.wikipedia.org/wiki/Database_normalization). Во-первых, заставьте его работать - во-вторых, сделайте все правильно - наконец, беспокойтесь о том, чтобы сделать это быстро. –
@Asdfg Я так думаю, сейчас у меня только одна колонка, поэтому я хочу посмотреть, могу ли я ее разбить. @ Michael Я пытаюсь дать ему шанс. Сейчас это работает, но я чувствую, что mysql может быть быстрее, поэтому я просто тестирую различные подходы и сравниваю его с предыдущими результатами (и гарантируя, что результаты одинаковы) – Lostsoul