vitus_wagner: My photo 2005 (Default)
vitus_wagner ([personal profile] vitus_wagner) wrote2020-01-05 09:37 pm

Питонистическое.

Выяснил что в стандартной библиотеке питона модуль collections, а в нем функция namedtuple. Позволяющая генерировать наборы данных с именованными полями и нулевым оверхедом. Более того named tuples - hashable, т.е. могут использоваться в качестве индекстов dict или элементов множества. И их очень удобно создавать из списков, dictionaries и тому подобных конструкций.

Теперь хочу реализацию операций реляционной алгебры над set of named tuples.
livelight: (Default)

[personal profile] livelight 2020-01-06 11:12 am (UTC)(link)
А вот для этого уже существуют взрослые СУБД: чтобы они сами думали, как выполнить 1 раз вычисления, которые, если в лоб выполнять написанное в запросе, придётся делать 120 раз. Но если автоматом схлопнуть все дубликаты, то проблемы будут уже с корректностью, а не производительностью.
livelight: (Default)

[personal profile] livelight 2020-01-06 05:27 pm (UTC)(link)
Альтернатива - написать запрос на том же питоне, но включив мозг самостоятельно и явно указав, что в каком порядке вычислять, дабы оно вычислялось 1 раз, а не 120. Ну или вообще забить, в пределах мегабайта авось никто и не заметит на современном железе.