оптимизировать расчет count в файбере.
                  
                  
                  У меня есть space на vynil, с данными вида {id, type}, необходимо получить кол-во записей по каждому типу.
                  
                  
                  Соответсвенно есть index по type, но что бы получить кол-во нужно знать значение 
                  
                  
                  space.index.type:count({'Movie'})
                  
                  
                  Пока, что ничего не удалось придумать, как запустить fiber, который отжирает очень много памяти
                  
                  
                          local types = {}
                  
                  
                          for _, tuple in box.space.objects.index.types:pairs() do
                  
                  
                              local data = tuple[2]
                  
                  
                              if not types[data] then
                  
                  
                                  types[data] = 1
                  
                  
                              else
                  
                  
                                  types[data] = types[data] + 1
                  
                  
                              end
                  
                  
                          end
                  
                  
                          return types;
                  
                  
                  Есть конечно же еще варианты с сохранением уникальных значений type, где то и потом перебором сделать count()
                  
                  
                  Но все же возможна ли итерация по индексу не доставая все значения tuple?
                  
                  
                
он не должен жрать много памяти
Обсуждают сегодня