Какие типы данных Python или SQL Alchemy следует использовать для взаимодействия с базами данных, содержащими хеш-значенPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Какие типы данных Python или SQL Alchemy следует использовать для взаимодействия с базами данных, содержащими хеш-значен

Сообщение Anonymous »

SQL Alchemy поддерживает несколько способов указания типов данных для столбцов базы данных SQL. Если используются обычные типы данных Python, SQL Alchemy попытается разумно сопоставить их с типами данных, поддерживаемыми подключенной к базе данных.
Существует также возможность использования более точно определенных типов, предоставляемых платформа SQL Alchemy. Эти типы более точно соответствуют типам, поддерживаемым конкретными базами данных. (Например, Postgres, MySQL, sqlite3, ...)
Похоже, этот вопрос и ответ предполагают, что тип UUID следует использовать для представления хеш-значений MD5.
Это кажется немного странным, поскольку для генерации хеша md5 обычно код Python выглядит примерно так

Код: Выделить всё

hashlib.md5(input_string.encode('utf-8')).hexdigest()
или это

Код: Выделить всё

hashlib.md5(input_string.encode('utf-8')).digest()
в зависимости от того, требуется ли хэш-значение в виде строки или двоичной строки ().
Ни один из них не является UUID в точности, однако форма str, по-видимому, неявно преобразуется в UUID и из UUID > тип.
  • Является ли UUID правильным типом данных?
  • Какой тип следует использовать для хэш SHA-256?
У меня такое ощущение, что в обоих случаях лучше использовать двоичный тип данных фиксированной ширины. Однако, похоже, это не поддерживается SQL Alchemy, по крайней мере, в сочетании с Postgres.
Это связано с тем, что тип данных LargeBinary SQL Alchemy сопоставляется с bytea Тип данных Postgres. Это тип данных переменной длины, и его невозможно заставить иметь фиксированную ширину, как это возможно с varchar.
Я провел некоторое тестирование между UUID< /code> и str, и я обнаружил, что вставка данных происходит немного быстрее при использовании UUID, что неудивительно, поскольку длина фиксированная, а не переменная. Однако разница была небольшой. (233 против 250 сообщений в секунду.)
Я планирую провести дальнейшее тестирование с использованием типа данных bytes. Мои первоначальные результаты показывают, что он работает так же, как str.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ith-databa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»