У меня есть две таблицы, которые структурно идентичны и примерно 10k строк каждый:SQLITE повысить эффективность запроса
db1.people db2.people
*************** ***************
name | number name | number
--------------- ---------------
mike | bob |
john | Kev | 45
mark | mark | 16
*************** ***************
моя цель состоит в том, чтобы найти тот же человек в обеих таблицах и скопировать значение в число от db2 до DB1 , Это потребовало некоторого взлома, но я думаю, что у меня это работает:
UPDATE people SET number = (SELECT number FROM db2.people WHERE number > 0 AND name = main.people.name);
И это работает, но очень тяжело. Я думаю, что его, выполнив следующие действия:
- проходит через все 10k имена в db1.people.names
- находит такое же имя в db2.people.names
- если db2.people.number населен он ставит значение в main.people.number
Улов всего лишь около 200 из 10-килограммовых линий в db2.people заполняется цифрой.
Это то место, где я вышел из своей лиги; как ограничить вышеуказанный запрос, чтобы работать только для имен, имеющих соответствующее числовое значение в db2.people.number?
Это должно принести мой 10k^10k 200^10k
Спасибо,
Есть ли какой-то способ положить UPDATE подзапрос в ЗЕЬЕСТ для db2.people WHERE число> 0? обратное моему текущему утверждению: пройдите через db2.people.number и посмотрите только на db1.people.name, когда db2.people.number заполнен? – apeg