[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-bazy-dannykh-chto-takoe-indeksy-i-dlya-chego-ikh-ispolzuyut":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},1137,"chto-takoe-indeksy-i-dlya-chego-ikh-ispolzuyut",35,"bazy-dannykh","Базы данных","🗄️","Что такое индексы и для чего их используют?","Индекс — вспомогательная структура данных в базе, которая ускоряет поиск записей по значениям определённых столбцов за счёт дополнительного расхода дискового пространства и замедления операций записи.\n\n> Аналогия из жизни: индекс — это как алфавитный указатель в конце книги. Вместо последовательного пролистывания 500 страниц, вы находите нужное слово в указателе и переходите сразу на нужную страницу.\n\n### Как работает индекс\n\nБез индекса СУБД выполняет полное сканирование таблицы (Sequential Scan \u002F Full Table Scan), проверяя каждую строку. С индексом СУБД использует структуру (обычно B-tree), чтобы за O(log N) найти нужные строки.\n\n### Преимущества\n\n- Ускорение поиска (WHERE), сортировки (ORDER BY) и соединения (JOIN)\n- Обеспечение уникальности данных (UNIQUE INDEX)\n- Ускорение работы с диапазонами (BETWEEN, >, \u003C)\n\n### Недостатки\n\n- Дополнительное дисковое пространство (индекс может быть соизмерим с самой таблицей)\n- Замедление операций INSERT, UPDATE, DELETE (при каждой модификации данных обновляется и индекс)\n- Необходимость обслуживания (REINDEX, VACUUM в PostgreSQL)\n\n### Когда индексы полезны\n\n- Столбцы, часто используемые в WHERE и JOIN\n- Столбцы с высокой кардинальностью (много уникальных значений)\n- Столбцы, по которым выполняется сортировка\n- Первичный ключ (индекс создаётся автоматически)\n\n### Когда индексы бесполезны или вредны\n\n- Маленькие таблицы (полное сканирование быстрее)\n- Столбцы с низкой кардинальностью (пол, статус true\u002Ffalse)\n- Столбцы, которые редко используются в запросах\n- Таблицы с интенсивной записью и редким чтением\n\n> **На собеседовании:** интервьюер хочет услышать про компромисс: индекс ускоряет чтение, но замедляет запись и занимает место. Частая ошибка — забыть про стоимость поддержания индексов при INSERT\u002FUPDATE и считать, что индексы нужно создавать на все столбцы.","","junior",[15,16,17],"databases","performance","основы",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":35,"featuredSnippetReady":36},"Что такое индексы в базе данных и зачем они нужны — Gymterview","Индексы в БД: определение, принцип работы (B-tree, O(log N)), преимущества (ускорение WHERE, JOIN, ORDER BY), недостатки (замедление INSERT\u002FUPDATE). Когда создавать.","Индексы в базе данных: что это и когда использовать — Gymterview","Что такое индекс, как работает B-tree, преимущества и недостатки индексов. Когда индексы полезны и вредны.",[26,27,28,29,30,31,32,33,34],"индекс","index","B-tree","база данных","производительность","full table scan","SQL","PostgreSQL","Java собеседование","Индекс — вспомогательная структура данных, которая ускоряет поиск записей по значениям столбцов за счёт дополнительного дискового пространства и замедления записи. Без индекса СУБД выполняет полное сканирование таблицы, с индексом (обычно B-tree) поиск выполняется за O(log N). Индексы ускоряют WHERE, JOIN, ORDER BY, но замедляют INSERT\u002FUPDATE\u002FDELETE.",true]