Встречается на собеседованиях • сегодня
Как проиндексировать большое количество данных при добавлении их в таблицу без индексов
Для индексации больших данных в таблице без индексов лучше сначала загрузить данные, а затем создать индекс. Это эффективнее, чем индексировать каждую запись по мере вставки.
Пример с SQL:
sql
-- 1. Создаем таблицу без индексов
CREATE TABLE large_data (id INT, name VARCHAR(100));
-- 2. Массовая вставка данных (например, через LOAD DATA или batch-вставки)
INSERT INTO large_data VALUES (1, 'Alice'), (2, 'Bob'), ...;
-- 3. Создаем индекс после загрузки
CREATE INDEX idx_id ON large_data(id);
text
В Java (JDBC + batch-вставка):
```java
try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement()) {
// Отключаем авто-коммит для batch-вставки
conn.setAutoCommit(false);
// Вставка данных
PreparedStatement ps = conn.prepareStatement("INSERT INTO large_data VALUES (?, ?)");
for (Data data : dataset) {
ps.setInt(1, data.getId());
ps.setString(2, data.getName());
ps.addBatch();
}
ps.executeBatch();
conn.commit();
// Создание индекса после вставки
stmt.execute("CREATE INDEX idx_id ON large_data(id)");
}Почему так лучше?
- Индекс обновляется один раз, а не при каждой вставке.
- Batch-вставки уменьшают накладные расходы.
- В некоторых СУБД (например, PostgreSQL) можно временно отключить индексы при массовой вставке (
ALTER TABLE ... DISABLE INDEX).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы