Одна из функций в моем файле views.py в Джанго имеет следующий код:Faster/More Джанго-иш способ запроса большого файла XML, который, используя некоторые действительно медленный XPath
from lxml import etree
f = etree.parse("path/to/file/k2.xml")
for item in charList:
first += f.xpath(u"//character[item='"+item+"']/path/to/entry[@type='on']/text()")
second += f.xpath(u"//character[item='"+item+"']/path/to/entry[@type='off']/text()")
Это загружает XML 14Mb файл, сканирует до тех пор, пока не найдет правильный элемент и добавит два значения к двум переменным, используя XPath.
Это очень медленно - от 5 до 6 секунд, что неприемлемо для сайта с высоким трафиком.
Django учит вас, что у вас нет запроса на базу данных для каждого запроса, но вместо этого есть постоянное соединение в файле settings.py, но это если вы используете SQL, а не XML.
Есть ли способ ускорить это, возможно, всегда имея xml-файл в памяти?
Я перенес файл XML в базу данных MySQL, которая намного быстрее. Но этот вопрос все еще стоит: / – LittleBobbyTables