#android #database #performance #android-sqlite #android-room
#Android #База данных #Производительность #android-sqlite #android-комната
Вопрос:
Допустим, у меня есть следующая таблица DB с именем LogTable
id name show
O A false
1 B true
2 C true
Эта таблица может легко содержать до 100 тыс. записей. Теперь я хочу обновить все записи, чтобы они содержали show
значение столбца как true
. Моя первая попытка была:
@Query("UPDATE LogTable SET `show` = $FALSE WHERE `show` = $TRUE")
Это работало, пока мой коллега не указал, что мы теоретически можем опустить WHERE
предложение для повышения производительности, например.
@Query("UPDATE LogTable SET `show` = $FALSE)
И, к моему большому удивлению, это работает лучше, независимо от того, какие данные я издеваюсь. По крайней мере, я подумал, что, когда у нас будет больше, show = FALSE
предложение query with WHERE
будет лучше с точки зрения производительности.
Чего мне не хватает? Добавляет ли WHERE в данном конкретном случае ненужные накладные расходы, поскольку сначала необходимо найти записи?