19:53:48 From agapov : всем добрый вечер 19:57:03 From Alexander Bogushov : Добрый! 19:57:11 From OTUS Онлайн-образование : добрый вечер! 19:57:38 From Андрей : Добрый вечер 20:00:02 From Sergey Boishtyan : Еще не началось? 20:00:33 From Юрий Монзиков : +- 20:00:33 From agapov : звук пропал 20:00:34 From Sergey Boishtyan : Пропал звук только что 20:00:46 From Sergey Boishtyan : да 20:00:46 From Alexander Bogushov : + 20:00:48 From agapov : + 20:00:48 From Анатолий : + 20:00:50 From Юрий Монзиков : + 20:06:39 From Vitaly Yushkevich : А как физически индексы хранятся, вы же будете рассказывать? 20:07:06 From Александр Филиппенко : оглавление это пример hash-индекса? 20:08:35 From Анатолий : накладные расходы 20:08:36 From Леонид Черненко : Нет, оглавление это не хеш 20:08:38 From Юрий Монзиков : это дорого 20:08:39 From Dmitriy Shitikov : не очень. замедлити зменение данных 20:08:39 From Сергей Маськин : Время на сохранение растет 20:08:39 From Alexey U : нет. замедлял запись 20:08:41 From Alexander Bogushov : Дорого 20:08:42 From agapov : на нужных колонках норм, но не переусердствовать 20:08:42 From Александр Федотов : Неверный вопрос) много понятие растяжимое 20:08:45 From Ивченков : Зависит от того что у нас преобладает, чтение или запись. 20:08:48 From Sergey Firsov : если не добавлять данные - норм 20:08:48 From Александр Филиппенко : плохо, постоянные обновления плюс место на диске тратится 20:08:55 From Леонид Черненко : Хорошо тогда, когда много чтения и мало записи 20:08:58 From Sergey Gusarov : зависит от реализации, но да не смысла на всё делать индексы 20:10:47 From Александр Филиппенко : + 20:15:42 From Александр Филиппенко : 7, да 20:15:42 From Леонид Черненко : 7, да 20:15:43 From Юрий Монзиков : 4 20:15:43 From Dmitry Zolotarev : 7 20:15:43 From agapov : 7 20:15:44 From korolev : 6 20:15:44 From Ивченков : 7 20:15:45 From Alexey U : останется. правый чилдом 7 20:15:51 From Alexander Bogushov : 7, + 20:16:46 From korolev : так B-дерево же не обязательно бинарное, разве нет? 20:16:59 From korolev : все, понял 20:17:08 From agapov : + 20:17:08 From Леонид Черненко : да 20:17:09 From Dmitry Zolotarev : + 20:17:10 From Ивченков : да 20:17:11 From Vitaly Yushkevich : да 20:17:12 From Sergey Boishtyan : + 20:17:13 From Анатолий : + 20:17:31 From agapov : нет 20:17:33 From Alexey Kryachko : - 20:17:35 From Sergey Boishtyan : нет 20:17:37 From Леонид Черненко : не будет сбалансированным 20:17:39 From Alexander Bogushov : Нет, к 8 20:17:40 From Alexey U : нет 20:17:40 From agapov : справа от 8 20:17:47 From Александр Филиппенко : нет, но можно 8 поставить вместо 7, а 7 и 9 сделать детьми 20:17:47 From Vitaly Yushkevich : К 8, не сбалансировано 20:21:54 From agapov : как выбирается t? 20:21:57 From Леонид Черненко : Как определить нужное значение "t"? 20:22:09 From Sergey Gusarov : целиком считаем блоки - дешевле 20:25:56 From agapov : а не может быть дубликата на уровне выше? 20:26:02 From Alexey U : а в блоке не бинарный поиск, если все отсортировано? 20:27:52 From Леонид Черненко : Мы ведь не должны смотреть соседние блоки, мы уже выяснили что данные должны быть либо в этом блоке, либо ниже 20:27:54 From Sergey Firsov : можно еще раз про дубликаты? почему они могут оказаться в блоках? 20:30:12 From Ивченков : Да не надо указку, и так все видно. 20:32:55 From agapov : а если бы вставили 11? 20:33:58 From Леонид Черненко : нет 20:34:00 From agapov : + 20:34:02 From Леонид Черненко : не понятно 20:34:11 From Vitaly Yushkevich : А можно еще раз - в примере берем 11 и поднимаем. Это 3 элемент, но говорим, что.t-1, то есть 2 20:34:11 From agapov : понятно 20:34:57 From Леонид Черненко : 11 уже есть, зачем вставлять если есть? 20:35:09 From Vitaly Yushkevich : То есть считаем с 0 элемента? 20:35:15 From Vitaly Yushkevich : 0, 1, 2, 3, 4? 20:37:24 From agapov : стоп 20:37:26 From Ивченков : получается, что если мы потом ищем 11, то надо просмотреть корневой эелемент и несколько дочерних? 20:37:28 From andrey : что если 11х 6 штук? 20:37:32 From agapov : в эдном из блоков 2 эл-та 20:37:35 From agapov : но основание 3 20:37:40 From agapov : одном* 20:38:03 From agapov : t =3 20:38:12 From agapov : 7 и 9 - 2 элемента 20:38:53 From Юрий Монзиков : правило обхода слева направо сверху вниз, следовательно втыкать в левый юлок нет смысла 20:39:12 From Alexander Bogushov : + 20:39:26 From Юрий Монзиков : + вторая добавилась бы только в право 20:40:41 From Vitaly Yushkevich : А в mysql какие интервалы используются? Как там хранится? 20:41:04 From agapov : t =3 7 и 9 - 2 элемента 20:41:12 From Леонид Черненко : слово "11" мне приснится сегодня ) 20:41:14 From agapov : тут путаница или я чего-то не понял? 20:41:44 From agapov : t-1 всё, сорян 20:41:49 From agapov : да 20:47:27 From Sergey Boishtyan : Посоветуешься литературу или статьи почитать про деревья и где задачи можно порешать? 20:47:29 From Леонид Черненко : Как соотносится t и настройка "cardinality" в ClickHouse? Они связаны? 20:48:41 From Sergey Gusarov : - 20:48:41 From Ивченков : Не видно 20:48:50 From agapov : - 20:48:53 From Ilya Zakruta : - 20:48:54 From Сергей Маськин : - 20:48:55 From andrey : - 20:48:57 From Dmitriy Shitikov : - 20:49:06 From Ивченков : Да 20:49:06 From Sergey Gusarov : + 20:49:07 From Dmitriy Shitikov : + 20:49:07 From andrey : + 20:49:07 From Sergey Boishtyan : видно 20:49:07 From Ilya Zakruta : + 20:49:08 From Alexander Bogushov : + 20:49:08 From Alexey Kryachko : + 20:49:08 From Сергей Маськин : + 20:49:08 From agapov : + 20:49:09 From Анатолий : + 20:50:32 From Vitaly Yushkevich : А Postgres также хранит индексы или там есть нюансы? 20:51:07 From korolev : что значит кластерный индекс 20:51:15 From Vitaly Yushkevich : Кластерный вроде справедливо для innodb только? 20:51:24 From Vitaly Yushkevich : myisam по моему ведет себя иначе 20:55:46 From agapov : только что же создали 20:57:42 From Ивченков : А почему plan rows == 30? Откуда он знает, что там 30 Сергеев? 20:57:56 From Леонид Черненко : Сколько строк было просканировано, в EXPLAIN не пишется? 20:58:49 From Леонид Черненко : 870? 20:59:10 From Леонид Черненко : А, понял 20:59:26 From Ивченков : Так откуда он у знал, что их 30? Он же запрос еще не выполнил) 20:59:28 From Vitaly Yushkevich : А explain точные данные выдает в Postgres? Если не путаю, mysql дает приближенные данные 21:00:18 From Vitaly Yushkevich : И план запроса в postgres- это «скорее всего так буду выполнять» или «так и выполняю»? 21:00:32 From Sergey Gusarov : там стоимость не точная вроде и в процессе вроде может меняться, нет? 21:00:50 From korolev : в MySQL explain не точные данные выдает 21:01:01 From Сергей Маськин : Странно что не пишет сколько строк затронуто 21:02:50 From Леонид Черненко : Самое важное, это обычно количество прочитанных строк, по сравнению с количеством строк в результате запроса. Прочитанные строки - это те, что были загружены с диска. 21:03:14 From Сергей Маськин : так вот именно этого и нет 21:03:43 From korolev : или иногда не тот индекс используется 21:04:32 From korolev : explain выдает неточную инфо, он кол-во строк исходя из собранной статистики по таблице определяется 21:05:48 From Vitaly Yushkevich : Исходя из опыта, на больших объемах данных и сложных запросах, часто ли приходится принудительно указывать, какие индексы использовать (не верить explain)? 21:05:59 From Vitaly Yushkevich : Именно про postgres 21:07:36 From Леонид Черненко : Запросы как правило гораздо сложнее бывают. По множеству таблиц с джойнами и кучей условий. В таких запросах, предсказать, какие индексы должны использоваться, глядя на запрос и прикидывая в уме, крайне тяжело ) Поэтому приходится идти путём экспериментов, и в этом случае как раз количество прочитанных строк (строк прочитано - строк в результате) даёт сразу грубую оценку. Можно сразу прикинуть, адекватно или нет. Если различается на порядки, всё плохо. 21:09:10 From Sergey Gusarov : спасибо, это сложна тема и рассказывать хорошо с азов. 21:11:21 From Alexey Kryachko : в MySQL вроде нет статистики 21:11:37 From Сергей Маськин : А какие порядки размеров этой статистики? 21:11:37 From korolev : как это нет? 21:11:41 From korolev : есть 21:12:04 From Ивченков : https://dev.mysql.com/doc/refman/5.7/en/statistics-table.html 21:12:18 From Alexey Kryachko : + 21:14:42 From Ивченков : Ну так может с фулсканом он быстрее выполнит, чем по индексу в этом случае. Надо сравнить) 21:16:43 From korolev : Крутой мастер-класс Петра Зайцева по индексам MySQL: https://www.youtube.com/watch?v=39e1vAGD3hg 21:17:00 From Ивченков : + 21:17:24 From Vitaly Yushkevich : У Петра в целом по mysql и индексам много всего хорошего (доклады на HL, книги) 21:18:29 From Ивченков : t у нас чему равно сейчас? 21:19:54 From Леонид Черненко : круто 21:20:27 From Vitaly Yushkevich : А в mysql так можно посмотреть (это же было само дерево, верно?) Никто не знает? 21:20:51 From Vitaly Yushkevich : я имею ввиду «посмотреть содержимое» 21:21:10 From Vitaly Yushkevich : + 21:21:14 From Vitaly Yushkevich : интересно 21:23:18 From Леонид Черненко : + 21:23:20 From korolev : + 21:23:20 From Dmitry Zolotarev To OTUS Онлайн-образование (privately) : + 21:23:23 From Анатолий : + 21:23:26 From Vitaly Yushkevich : + 21:23:38 From korolev : можно в чат эти сссылки 21:23:41 From Vitaly Yushkevich : А как физически то хранятся индексы? 21:23:55 From Леонид Черненко : файл 21:24:10 From Vitaly Yushkevich : это понятно, что файл 21:24:31 From Vitaly Yushkevich : Ну я знаю, что там есть ключ => указатель 21:24:33 From Vitaly Yushkevich : условно 21:24:44 From Vitaly Yushkevich : Для составных индексов ключ_ключ => указатель 21:24:45 From Сергей Маськин : как таблица хранится в файле) 21:24:56 From Vitaly Yushkevich : но как именно конкатенируются составные ключи? 21:25:43 From Vitaly Yushkevich : Есть разница между хранением PK и простым индексом. Они по разному лежат 21:26:04 From Vitaly Yushkevich : вот мне не хватает как раз знаний, как это на уровне дисков физических лежит. Не раз спрашивали 21:26:19 From Vitaly Yushkevich : Надеялся получить эту информацию, гуглится не очень хорошо. Файлы не трепарировал руками 21:26:33 From Леонид Черненко : Если ID1 будет 0xAA и ID2 будет 0xBB, то составной ключ будет 0xAABB 21:26:43 From korolev : мне тоже ответ интересен 21:27:01 From Vitaly Yushkevich : А куда надо продублировать? В general? 21:27:06 From Vitaly Yushkevich : Или в чат комнаты? 21:27:10 From OTUS Онлайн-образование To Dmitry Zolotarev(privately) : @forward32 21:27:27 From OTUS Онлайн-образование To Dmitry Zolotarev(privately) : https://www.youtube.com/watch?v=KFcpDTpoixo&feature=youtu.be https://habr.com/ru/company/postgrespro/blog/326096/ https://www.geeksforgeeks.org/introduction-of-b-tree/ 21:27:37 From Vitaly Yushkevich : написал 21:28:40 From korolev : а следующие лекции по БД, только по postgres-у будут? mysql ? 21:29:02 From Vitaly Yushkevich : И B+ деревья? 21:29:14 From Vitaly Yushkevich : У нас основная база mysql, Иван говорил 21:29:21 From korolev : Иван вроде по MySQL говорил 21:29:23 From Vitaly Yushkevich : Если где-то можно проголосовать, то я за mysql 21:29:32 From Alexander Bogushov : postgres + 21:29:35 From Леонид Черненко : В Монго индексы настолько же эффективны как и в других БД? 21:29:40 From korolev : наиболее распространенная 21:29:41 From andrey : я за postgres ) 21:29:42 From Sergey Gusarov : посгрес ) проме ) 21:29:44 From agapov : холиварчиком пахнет 21:30:01 From korolev : MySQL наиболее распространенная 21:30:02 From Vitaly Yushkevich : Больше опыта, на основных проектах чаще используется 21:30:04 From Сергей Маськин : Mysql популярнее в хайлоаде 21:30:08 From Леонид Черненко : MySQL более популярен ) просто используется везде 21:30:10 From Andy : MySQL больше используют в малом и среднем бизнесе. 21:30:27 From korolev : безусловно postgres круче, но больше mysql 21:30:30 From Vitaly Yushkevich : + за распространение. А с точки зрения нагруженных проектов - есть опыт, где он используется и там все хорошо 21:30:44 From Vitaly Yushkevich : Badoo тоже 21:31:17 From Vitaly Yushkevich : А про B+ tree, hash индексы, красно-черные деревья будут как-то освещаться? 21:31:18 From Ивченков : Как добавлять/удалять индексы на больших БД? Если база весит больше 100Гб, то добавление/удаление занимает относительно много времени + отбирает значительное кол-во ресурсов.Есть какие то подходы? 21:31:55 From korolev : по Б-деревьям (и Б+) можно подробнее почитать Кормена «Алгоритмы, построение и анализ» 21:32:13 From Alexey Kryachko : по добавлению индексов плагины от Percona юзаем 21:32:40 From Vitaly Yushkevich : То есть получается, что индексы частично дублируются? 21:32:52 From Vitaly Yushkevich : нам же нужно где-то ссылку на этот индекс хранить 21:33:01 From Vitaly Yushkevich : С этого индекса* 21:33:42 From Vitaly Yushkevich : это про B+ дерево 21:34:11 From agapov : крутая лекция, спасибо! 21:34:16 From Ивченков : Спасибо. 21:34:20 From korolev : ответы на вопросы можно будет в slack дублировать? 21:34:24 From Sergey Gusarov : Спасибо! 21:34:27 From Леонид Черненко : спасибо 21:34:28 From Alexey U : спасибо 21:34:30 From Dmitriy Shitikov : спасибо 21:34:32 From andrey : все отлично, спасибо 21:34:33 From korolev : вы дублируйте пожалуйста 21:34:35 From Ilya Zakruta : спасибо 21:34:42 From korolev : спасибо 21:35:01 From Сергей Маськин : спасибо