SQLite ужасно медленный в той же сети сервера терминалов, но не в локальной сети с физическими компьютерами - PullRequest
1 голос
/ 21 февраля 2020

У меня есть два приложения (серверная и клиентская версия). Версия сервера поместила 500 000 записей с именами файлов в файл базы данных sqlite. Этот файл БД доступен через сеть. Версия клиента имеет текстовое поле, в котором имя файла будет записано сканером штрих-кода. После ввода имени файла приложение подключится к файлу базы данных на подключенном к сети диске и задаст один запрос:

select * from files where filename='testfile.pdf'

Файл базы данных составляет около 73 МБ. Когда я выполняю этот запрос на локальном компьютере, где работает сервер и клиент, он выполняется напрямую, без задержки.

Когда я выполняю этот запрос в локальной сети (не с терминальным сервером), также нет задержки или половины в секунду.

Когда я запускаю это на сервере терминалов (на сервере и на клиентской версии), без задержки.

Тем не менее, когда я запускаю запрос на двух разных экземплярах сервера терминалов (сервер версия в одной и версия клиента в другой) в том же центре обработки данных с 1-гигабитным соединением, до выполнения запроса требуется до 10 секунд.

У меня есть идея, что клиент загружает весь файл базы данных SQLite прежде чем он сможет воспроизвести запрос на нем. Есть ли способ продолжать использовать SQLite при ускорении этой настройки?

Мои идеи - загрузка всей БД в массив при загрузке клиентской версии ... Хотя я надеюсь, что есть другой способ доступа к База данных SQLite.

1 Ответ

1 голос
/ 21 февраля 2020

Как указал Майкл Рэндалл, SQLite - это просто файл и имеет свои ограничения. Это всего лишь инструмент, который можно использовать для тестирования, это «Lite» со ссылкой на его название. Вы можете перенести его в другие RDBMS. Для этой цели вы можете использовать DBSofts:

  • , выбирая SQLite в качестве источника данных
  • , выбирая предпочитаемую СУБД в качестве места назначения
  • выбирая таблицы
  • щелкнув Отправить

PostgreSQL

https://www.dbsofts.com/articles/sqlite_to_postgresql/

SQL Сервер

https://www.dbsofts.com/articles/sqlite_to_sql_server/

Oracle

https://www.dbsofts.com/articles/sqlite_to_oracle/

MySQL

https://www.dbsofts.com/articles/sqlite_to_mysql/

Сценарии

Вы также можете сделать это самостоятельно. Для этого сначала нужно вывести SQLite (https://www.sqlitetutorial.net/sqlite-dump/), а затем преобразовать сценарий в сценарий, который работает для выбранной СУБД.

...