У меня есть 30 или даже больше, чем у этих таблиц, и все таблицы имеют свой первичный ключ для автоматического увеличения, поэтому всякий раз, когда я выполняю операцию удаления, например, удаление 30 записей из 10 таблиц, то после удаления 300 ячеек памяти всегда будут остаются пустыми, потому что первичные ключи настроены на автоинкремент. Так думайте об этой же ситуации для очень больших баз данных, поэтому как решить эту проблему и снова использовать эти ячейки памяти.потеря памяти базы данных после удаления
ответ
Ну его авто увеличивается, поэтому вы не можете помочь ему. В этом нет потерь памяти.
Первичный ключ не относится ни к какому виду «ячеек памяти», это просто счетчик, который дает каждой строке уникальный номер.
Теоретически можно использовать все возможные ключи, однако я не уверен, что если MySQL попытается использовать старые значения, которые были удалены (это не должно быть). Но с учетом неподписанного поля BIGINT может достигать 18 446 744 073 709 551 615 (18 квинтиллионов), маловероятно, чтобы вы столкнулись с проблемой.
okk принят, если мы возьмем bigint, я никогда не выйду из космоса, но что, если я хочу снова использовать тот же pk, что мне делать? – rupinder18
@ rupinder18 В идеале вы никогда не должны использовать тот же первичный ключ снова. Первичный ключ обычно упоминается в других таблицах. Если вы снова будете использовать его, вы рискуете связать его с данными, которых не должно быть. Первичный ключ с автоматическим приращением не должен быть ценным, о котором вы заботитесь. Если вы хотите изменить его/вручную назначить, я бы не рекомендовал автоинкремент. – Dracs
Автоинкремент - это просто счетчик. Это не имеет ничего общего с памятью. Тот факт, что столбец PK не является полной математической серией, никак не влияет на производительность. Единственное, на что влияет удаление, - это журнал отката. Если вы удаляете все данные в таблице, лучше усечь их.
Модель памяти mysql сложна. В обзоре вы можете посмотреть this article из документации по разработке mysql.
- 1. Таблица базы данных очень медленно после удаления
- 2. Обновление базы данных mysql после удаления записи
- 3. Как разблокировать Sqlite базы данных после удаления
- 4. QWebTemplateNotFound ошибки после удаления базы данных
- 5. Восстановление базы данных MySql после удаления WAMP?
- 6. Как восстановить базы данных после их удаления?
- 7. Как Listview обновляется после удаления базы данных?
- 8. SQLite без освобождающей памяти после удаления
- 9. Потеря обновления базы данных после изменений в коде
- 10. Потеря данных ViewModel после POST
- 11. потеря данных EBS после перезагрузки
- 12. Потеря данных iOS после обновления
- 13. NSMutableArray и потеря памяти памяти
- 14. Ошибка удаления базы данных
- 15. Полезная или потеря памяти?
- 16. xmlCleanupParser() потеря памяти?
- 17. Измерьте свободное пространство базы данных после удаления большого количества данных
- 18. база основных данных хранит документы после удаления базы данных
- 19. База данных уже существует даже после удаления файлов базы данных
- 20. Как обновить список просмотров после удаления данных из базы данных?
- 21. Android удаления базы данных SQL
- 22. После последовательности новых/удаления в структурах у меня, кажется, есть потеря памяти
- 23. uiwebview и огромная потеря памяти
- 24. потеря данных данных при загрузке модели из базы данных
- 25. определенно потеря памяти на valgrind
- 26. Ошибка удаления из базы данных
- 27. Потеря данных формы MVC после проверки
- 28. Потеря данных статических атрибутов после onActivityResult
- 29. Cassandra: Потеря данных после добавления нового узла
- 30. Потеря данных после написания в искровом разряде
AFAIK auto-increment - всего лишь счетчик. Это не имеет ничего общего с памятью. Тот факт, что столбец PK не является полной математической серией, никак не влияет на производительность. Единственное, на что влияет удаление, - это журнал отката. Если вы удаляете все данные в таблице, лучше усечь их. –
Я не удаляю все данные, и если pk является просто счетчиком, чем то, как происходит управление памятью? – rupinder18
Модель памяти mysql - сложная вещь. Коллекция строк в отношении PK ограничена, то есть отсутствующие значения не занимают никакой памяти. Читайте здесь для получения дополнительной информации о управлении памятью mysql: http://dev.mysql.com/doc/refman/5.0/en/memory-use.html –