iphone sqlite оптимизация запросов - PullRequest
0 голосов
/ 25 марта 2011

В настоящее время я использую этот sqlite-запрос в своем приложении.В этом запросе используются две таблицы .....

UPDATE table1 set visited = (SELECT COUNT(DISTINCT table1.itemId) from 'table2' WHERE table2.itemId = table1.itemId AND table2.sessionId ='eyoge2avao');

Он работает правильно .... Моя проблема в том, что для выполнения этого запроса и получения результата требуется около 10 секунд ....Не знаю, что делать ... Практически все остальные процессы работают правильно. Поэтому, похоже, проблема в формировании запроса ...

Пожалуйста, кто-нибудь поможет с оптимизацией этого запроса....

С уважением, Брайан

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

Также попробуйте выполнить команду EXPLAIN для команды SELECT, чтобы узнать, дает ли она вам какой-либо полезный совет.

0 голосов
/ 25 марта 2011

Убедитесь, что у вас есть индексы в следующих (комбинациях) полей:

  • table1.itemId (Это ускорит предложение DISTINCT, поскольку itemId уже будет в правильном порядке).

  • table2.itemId, table2.sessionId Это ускорит предложение WHERE вашего оператора SELECT.

Сколько строк в этих таблицах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...