|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|||||||||||
Как правильно обновить id после удаления записи11.12.2023, 18:15. Показов 9689. Ответов 96
Метки нет (Все метки)
Всех приветствую. У меня есть таблица,в которой первичный ключ не autoincrement rowid,поэтому я сам создал колонку rowid:
0
|
|||||||||||
| 11.12.2023, 18:15 | |
|
Ответы с готовыми решениями:
96
FireBase + RecyclerView| как обновить список, после удаления item из базы? Как обновить datagridview после добавления записи? |
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 816
|
||||
| 26.12.2023, 16:44 | ||||
0
|
||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
||||||
| 26.12.2023, 23:25 [ТС] | ||||||
|
В общем я посмотрел план запроса
2 0 0 CO-ROUTINE 2 6 2 0 SEARCH TABLE favourite_posts USING INTEGER PRIMARY KEY (rowid<?) 9 2 0 SCALAR SUBQUERY 1 13 9 0 SEARCH TABLE favourite_posts USING COVERING INDEX sqlite_autoindex_favourite_posts_1 (id=?) 29 0 0 SCAN SUBQUERY 2 Насколько хороший это результат? Особенно меня смущает корутина,т.е я не уверен,насколько это хорошо для производительности. Просто когда я шёл вперёд,а значит подзапросов было меньше,никакой корутины не было. Кстати что за цифры в начале каждой строки плана? Добавлено через 40 минут Кстати внешняя сортировка,как я вижу,почему-то игнорируется. Добавлено через 2 часа 37 минут Посмотрел ещё раз Ваш запрос,добавил ROWID в подзапрос и сортировка заработала как надо. Непонятно почему внешняя сортировка не работала без rowid хотя бы простым сканированием таблицы. Кстати сейчас у меня добавилось в план: 40 0 0 USE TEMP B-TREE FOR ORDER BY Надеюсь это хороший результат? Внутренняя сортировка у меня почему-то не отобразилась.
0
|
||||||
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 816
|
||||||
| 27.12.2023, 07:16 | ||||||
0
|
||||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|||||||||||
| 27.12.2023, 21:30 [ТС] | |||||||||||
|
Понятно. А CO-ROUTINE в sql не ухудшит производительность? Также я не понял,почему внешняя сортировка не работала,если в подзапросе не добавить ROWID к выборке? Ещё хотелось бы для себя понять,если будет примерно такой запрос:
Кстати (я понимаю,что это надо обернуть в отдельный поток но всё-таки) почему-то при запросе:
0
|
|||||||||||
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 816
|
|
| 27.12.2023, 22:41 | |
|
Воспользуйтесь консолью и ее профилировщиком, она покажет сколько раз нода была выполена и сколько строк вернула.
Вы уверены что запрос тормозит? Поставьте таймеры или воспользуйтесь профилировщиком если он есть для андроид.
0
|
|
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|||||||||||
| 12.01.2024, 00:34 [ТС] | |||||||||||
|
Всех с наступившими праздниками. В общем скоро,,надеюсь,выйдет новая версия нашего приложения. К сожалению не в android,не в windows опция DSQLITE_ENABLE_STMT_SCANSTATUS не включена,поэтому я не могу проверить,сколько строк было отсканировано,т.к меня интересует запрос,когда мы листаем страницы назад,т.е к примеру такой:
.scanstats not available in this build,т.е мне надо самому собрать sqlite для windows (готовый я не нашёл),а возиться со сборкой не хочется,т.к я очень мало работаю с бд и по сути эта бд - мой первый опыт,т.е если я и работал ранее с бд в android приложении,то с теми,кто создавал их до меня,и то я с ними напрямую почти не работал. Поэтому если кто-то сможет проверить,оптимально ли эти запросы работают,или для первого запроса лучше всё-таки запоминать rowid для каждой страницы,как мне и советовали,я буду очень сильно благодарен. Также меня волнует оптимальна ли в данный момент структура моей бд,или её можно как-то улучшить (каждый пост в бд,это подробное описание изображения/видео откуда-либо)? Заранее благодарю всех за помощь.
0
|
|||||||||||
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 816
|
||||||
| 12.01.2024, 08:29 | ||||||
|
Скачайте в https://www.sqlite.org/download.html tools. В коммандной строке уже все есть
выполняете команды: .scanstats est .timer on Дальше при выполнении запросов будет Вам статистика Кликните здесь для просмотра всего текста
Запрос выполняется за 7-15мс. По моему мнению норм
1
|
||||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
||||||||||||||||
| 12.01.2024, 18:33 [ТС] | ||||||||||||||||
|
Огромное Вам спасибо за помощь. Я немного перепутал,мне нужно было получить запрос,когда я перехожу на предыдущую страницу:
Run Time: real 0.007 user 0.000000 sys 0.000000 Вообще меня пугает,что такой запрос выполняется за 7 мс. А если бд будет в 100-200 раз больше,за сколько этот запрос выполнится? Мне кажется что второй запрос (который я изначально и хотел,чтобы Вы проверили,но перепутал,т.е не то скопировал с лога),будет выполняться гораздо дольше. Кстати я выяснил,что запрос:
0
|
||||||||||||||||
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 816
|
||||
| 14.01.2024, 09:15 | ||||
Loop - сколько раз был посещен данный узел (реальное число) RPL - среднее число строк на на цикл (если умножить на loop - то общее число строк возвращенное узлом) EST - Ожидаемое число строк на цикл https://www.sqlite.org/forum/info/20c102e438450a8d real - это прошедшее время user - это время, затраченное на выполнение инструкций в пользовательском режиме sys - это время, затраченное на выполнение инструкций в режиме супервизора если real - user - sys > 0 то это время потрачено на ожидание ввода вывода (например чтение с диска), процессор ни чего не делал.
1
|
||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
||||||
| 14.01.2024, 18:03 [ТС] | ||||||
|
Что же,я скачал sqlite tools,и вот что получил. Можно ли на Ваш взгляд улучшить мой запрос для получения rowid с предыдущей страницы и что за корутина в sqlite. Как я ранее писал,фриз в android приложении вообще не связан с sqlite,т.к он был одним из самых быстрых по скорости. Кстати когда листаем назад,как я понял по выводу,запрос выполняется за 49 мс,вместо 15 мс,когда мы идём вперёд. Видимо придётся сохранять rowId каждой страницы и записывать в массив.
0
|
||||||
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 816
|
||||||||||||||
| 14.01.2024, 20:48 | ||||||||||||||
0
|
||||||||||||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 14.01.2024, 21:57 [ТС] | |
|
Попытался выполнить Ваш запрос,отдаётся 16 записей,хотя должно 20. Я использую знак больше,т.к мы отображаем посты по убыванию и нам нужно показать первую страницу,когда мы на второй,т.е от меньшего к большему. Кстати Ваш запрос выполняется тоже где-то 49 мс. Очень жаль,что в sqlite нет явного оператора,который бы сразу выбирал нужные записи,но добавлял бы их в начало,т.е что-то типа стека. Кстати насчёт не совпадения фактического значения с ожидаемым,это плохо? Если да,то как можно улучшить мою бд?
0
|
|
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 816
|
||||||||||
| 14.01.2024, 22:26 | ||||||||||
0
|
||||||||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|||||||||
| 14.01.2024, 23:44 [ТС] | |||||||||
При этом перед этим real был 79,а перед этим вроде 50 или что-то в этом роде. Кстати проверил простой запрос:
0
|
|||||||||
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 816
|
|||||||||||||||
| 14.01.2024, 23:58 | |||||||||||||||
0
|
|||||||||||||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|||
| 15.01.2024, 01:55 [ТС] | |||
0
|
|||
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 816
|
||||
| 15.01.2024, 06:40 | ||||
0
|
||||
| 15.01.2024, 06:40 | |
|
Как правильно обновить DataGrid после добавления строки
Обновить грид после удаления из бд
Список файлов в listView. Как убрать пути и обновить список после удаления элемента Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|
|
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли
Введение: Экологический рынок как игра с нулевой суммой
Традиционная экология долгое время. . .
|
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ
Введение: Синдром «цифрового учебника»
Современные большие языковые модели (LLM) обладают колоссальным. . .
|
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос.
Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех.
А широколиственный лес тоже имеет самую крутую биомассу.
То почему не возникло их симбиоза? Это. . .
|
сукцессия 6. Питон реализация энилоджиковской модели, картинка про Центральную часть будущей модели
anaschu 26.06.2026
Етить. ИИ мне на основе моего старого файла R создал вот эту вот хмерь на пайтоне.
Это уже новая модель, модель сукцессии грибной.
потоки фосфора, азота. Углерода.
5 видов организмов.
Я даже. . .
|