javedimka: Супер - реально так работает ))
class Person(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
age = models.IntegerField()
теперь генерим данные
a = string.ascii_letters
person_list = [Person() for p in range(1000)]
for p in person_list:
p.first_name = ''.join([random.choice(a) for i in range(random.randint(2, 30))])
p.last_name = ''.join([random.choice(a) for i in range(random.randint(2, 30))])
p.age = random.randint(18, 90)
p.save()
теперь получаем
p = Person.objects.all()
p_list = p.filter(Q(first_name__icontains = 'Xx')| Q(last_name__icontains = 'Yy'))
arr = [x for x in p_list]
итог
len(arr)
45
ЗАпрос такой будет
SELECT "testdbs_person"."id", "testdbs_person"."first_name", "testdbs_person"."last_name", "testdbs_person"."age" FROM "testdbs_person" WHERE ("testdbs_person"."first_name" LIKE %Xx% ESCAPE '\' OR "testdbs_person"."last_name" LIKE %Yy% ESCAPE '\')
Если все упростить, то MQ это транспорт решающий главным образов вопросы доставки данных из системы А до системы В или из системы А до систем В1, В2.... Решающие задачи гарантированной доставки данных и маршрутизации. Как правило построенное на основе очередей. Как работать с этим транспортом определяет его АПИ (как правило достаточно простое) в принципе все. ESB решает куда бОльший круг задач. Как правило в качестве транспорта в ESB используется или внешняя или своя MQ или ее подобие, также ESB предоставляет наборы различных коннекторов, адаптеров, таймеров и других клмпонент. Как правило есть встроенный BPM. Большенство ESB позволяют запускать "под собой" пазличные приложения нечего не подозревающие сто они начали работать в некотором окружении. Как то так.