Какие проблемы бывают у баз данных
Python
Middle
Без компании
Какие проблемы бывают у баз данных
Ответы
- **Проблемы производительности**:
- Медленные запросы из-за отсутствия индексов, неправильных JOIN или больших данных.
- Блокировки (deadlocks) при конкурентном доступе.
- **Проблемы масштабируемости**:
- Вертикальное масштабирование (увеличение ресурсов сервера) ограничено.
- Горизонтальное (шардинг) сложно реализовать без потерь.
- **Целостность данных**:
- Потеря данных при сбоях (требуются транзакции и бэкапы).
- Некорректные связи (например, нарушение FOREIGN KEY).
- **Репликация и согласованность**:
- Задержки в репликации (eventual consistency).
- Конфликты при multi-master репликации.
- **Безопасность**:
- SQL-инъекции.
- Неправильные права доступа (например, избыточные привилегии).
**Пример блокировки в SQLite**:
```
import sqlite3
conn = sqlite3.connect("test.db")
cursor = conn.cursor()
cursor.execute("BEGIN TRANSACTION")
cursor.execute("UPDATE users SET balance = 100 WHERE id = 1") # Блокировка
# Другой поток не сможет изменить эту запись до COMMIT/ROLLBACK
```