
Maxim
05.10.2016
09:12:31
ну предположим, что данные попадают в таблицу раз в секунду. через 2 миллиона секунд я захочу фильтровать по этому полю, с по числа.
есть ли смысл от индекса в таком случае.

Pavel
05.10.2016
09:13:29
есть
я наверное плохо объясняю http://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html

Maxim
05.10.2016
09:14:30
скорее я плохо понимаю

Google

Maxim
05.10.2016
09:14:39
пасиб. почитаю

Pavel
05.10.2016
09:16:19
вам надо понять только одно, индекс это не ваше значение, и для индекса нет разницы, строка это или число или метка времени, по этому для хранения индексов тратится больше ресурсов и больше времени обработки и по этому они вредны где все запросы (ну или большинство) INSERT и UPDATE, а там где куча селектов еще и с условиями индексы просто жизнено необходимы на тех полях, по которым идут выборки
при том составные индексы (по нескольким полям) должны идти в том же порядке, что вы их перечисляете в самом запросе, иначе индекс не подхватится
индексы есть или их нет не ощущается только в одном случае, пока вся таблица влазит в оперативку, а как только перестает влазить, начинается все веселье

Maxim
05.10.2016
09:21:08
у меня вопрос ядра битрикса. потому у меня изначально все не влазит никуда.

Pavel
05.10.2016
09:21:34
по этой причине оптимизация бд начинается уже на боевом проекте обычно )))

Vladimir
05.10.2016
09:21:41
ну не только, когда 4 таблицы склеить нужно с 2 лямами записей, джоинами.. сразу чувствуется есть индекс или нет

Maxim
05.10.2016
09:22:06
ну если я выпущу свой модуль, вы же (да и я тоже) сначала код обсерите, потом программистов, потом весь битрикс )

Vladimir
05.10.2016
09:22:25
а потом найдём по IP и под дверь...
но зная какие сейчас модули штампуют )

Pavel
05.10.2016
09:22:48

Vladimir
05.10.2016
09:23:05

Анатолий
05.10.2016
09:36:24
Когда такие количества строк в базе данных идут - мой вам совет - копируйте это всё на отдельный сервер и там выстраивайте индексы. Процесс этот не маленький по времени - от нескольких дней до недель. И раз уж речь идет о Битриксе - проверьте сначала что кэш правильно используется.

Google

Maxim
05.10.2016
09:37:25
ну это уже частные случаи
в моем случае нужна универсальность

Анатолий
05.10.2016
09:37:52
это как?

Maxim
05.10.2016
09:38:42
ой, вы это не мне ответили. я тут с индексами разбираюсь сижу.
Например, если мне нужно выполнить запрос типа AGE=18 AND STATE='CA', то многие люди просто создадут 2 отдельных индекса на колонках AGE и STATE.
я из этих людей )))

svetlana
05.10.2016
09:39:57
можно один создать

Анатолий
05.10.2016
09:39:58
с индексами есть 2 варианта - а) когда вы предполагаете какие запросы будут использоваться и заранее выставляете индексы на какие-то колонки таблиц, и б) когда у вас есть конкретные страницы сайта с конкретными запросами с этих страниц - и надо оптимизировать эти конкретные запросы.

Andrew
05.10.2016
09:40:28
вам бы что-то вроде таких статей почитать http://ruhighload.com/post/Работа+с+индексами+в+MySQL

Анатолий
05.10.2016
09:40:31
а вообще не стоит создавать кучу индексов просто так - замедляет insert и update

Andrew
05.10.2016
09:41:06
это я к тому, что без полного понимания, как оно там, сложно делать какие-то выводы.

Maxim
05.10.2016
09:42:17
да уже прочел. сижу размышляю. всегда легкомысленно подходил к индексам. не было таких сложных задач. Если что, оперировал уже продакшном. а тут задача заранее продумывать )

Анатолий
05.10.2016
09:43:29
)) почитайте ещё про шардинг, вертикальный и горизонтальный.. кластеры добавьте с репликацией и будете через полгода спецом по БД

Maxim
05.10.2016
09:44:24
да я уже понял, что вырос из стандартного набора запросов. пора уже что то более изучать, да и книжку почитать одну другую про бд.

Vladimir
05.10.2016
09:46:04
мне кажется даже в случае с модулем для МП не стоит усложнять
у кого база огромная знает что такое индекс и сможет проставить, у кого сайт с 50 униками в день, и знать не нужно зачем это
если конечно решение изначально не предпологает огромный справочник, но тогда легче 2-3 основных выделить как это делает битрикс
вот я по проектированию БД полистал бы в метро, но пока подруки достойного ничего не попадается, в основном куча воды
причём доуровня репок и nosql Решений

Pavel
05.10.2016
09:54:16

Google

Pavel
05.10.2016
09:55:46
сейчас еще одну найду))

Vladimir
05.10.2016
09:56:35
Во спасибо, судя по оглавлению прям с 9 главы можно изучать)

Pavel
05.10.2016
09:56:45
я бы эту еще рекомендовал http://www.books.ru/books/obespechenie-vysokoi-dostupnosti-sistem-na-osnove-mysql-1545929/

Vladimir
05.10.2016
09:59:33

Maxim
05.10.2016
09:59:55
Внимание! Книгу продает:
Вячеслав Валериевич
))))
очень важная информация

Vladimir
05.10.2016
10:01:02
да bitrix расслабил.. мелкие проекты где всё знаешь, а не знаешь гуглишь за 5 минут

Pavel
05.10.2016
10:03:02
нельзя расслабляться :) у меня у вэб разработчика на полке даже программирование под микроконтроллеры стоит))) изучение разных вещей развивает мышление в правильном направлении)) Заметил когда изучал всякие С++ с Qt ))

svetlana
05.10.2016
10:05:10
у нас вот что на полке стоит )))

Maxim
05.10.2016
10:05:30
хасбро

Maxim
05.10.2016
10:05:36
помните монополию на картах гугла?

Pavel
05.10.2016
10:05:45
правильно, отдыхать тоже надо уметь))

Maxim
05.10.2016
10:05:57
у меня есть ахрененная идея. )) но я один не потяну игру )

Pavel
05.10.2016
10:06:56

Maxim
05.10.2016
10:07:15
? это да

Pavel
05.10.2016
10:10:41
я даже в метро почитать не могу, потому что за рулем (не поезда)
нужно переходить на общественный траспорт :)

Vladimir
05.10.2016
10:11:43
не у меня 40 минут пробка

Google

Vladimir
05.10.2016
10:11:50
и 30 минут на метро)

Maxim
05.10.2016
10:12:04
ну такую книгу конечно не послушать. но я в автобусе или пешком если, аудио книги кручу всегда )

Pavel
05.10.2016
10:12:32
есть тех литература в аудио формате? :)))

svetlana
05.10.2016
10:12:33
а я под аудио книги засыпаю

Vladimir
05.10.2016
10:12:57

svetlana
05.10.2016
10:13:17
пришёл ПМ, тянет репку, вытянуть не может....

Vladimir
05.10.2016
10:13:20
тянул вася репку тянул да не вытянул)

svetlana
05.10.2016
10:13:39
а чё сразу вася =)))

Maxim
05.10.2016
10:14:02
прибежал Покрышкин, усики погладил, вытянули репку из разбитого рейда

Admin
ERROR: S client not available

Maxim
05.10.2016
10:14:27
рейд. рейд. в фалаут шелтер поиграть, чтоль?

Pavel
05.10.2016
10:16:15

Maxim
05.10.2016
10:16:39
ну тут как с дедом повезло
окончил ли он школу, старый дурак
я встречался когда на одной машине два мускуля обрабатывали один сайт
кто то экспериментировал

svetlana
05.10.2016
10:17:46
походу проект опять одна мыша вытягивать будет =)))

Pavel
05.10.2016
10:18:33

Maxim
05.10.2016
10:18:39
два сервера
кто то экспериментировал наверное. но денег на две железки не хватило

Google

Maxim
05.10.2016
10:19:17
сервер = по

Pavel
05.10.2016
10:19:22
два сервера
я сейчас подумал, что не знаю как запустить второй сервер на той же машине
хотя нет, есть пара идей ))

Maxim
05.10.2016
10:21:34

Pavel
05.10.2016
10:22:36
нет, надо зайти в сервис старт скрипт, посмотреть как подымается сервер, скорее всего там можно подсунуть свой файл конфигурации при старте, ну а там уже подсунуть свой порт, свои сокеты в конфе, вот и будет 2 инстанса на разных портах
либо второй - рассувать по контейнерам
все хочу клоудлинукс посмотреть - времени нету))

Maxim
05.10.2016
10:30:49
https://habrahabr.ru/company/bitrix/blog/147098/
innodb-flush-log-at-trx-commit
вот в эту сторону копай
он в 2-3 раза ускорит работу
http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=32&LESSON_ID=3371
Наибольшее внимание следует обратить на следующие параметры и примеры:
set-variable = innodb_buffer_pool_size=250M
set-variable = innodb_additional_mem_pool_size=50M
set-variable = innodb_file_io_threads=8
set-variable = innodb_lock_wait_timeout=50
set-variable = innodb_log_buffer_size=8M
set-variable = innodb_flush_log_at_trx_commit=0


Виталий
05.10.2016
10:35:02
ктото делал выгрузку товаров из 1С на сайт со структурой отличной от той, которая в 1С и штатный механизм настройки иерархии групп не подходит *при настройках обмена с 1С)
есть категория запчасти, в неё выгружают 10 категорий с товарами, и у каждой категории по 5 подкатегорий.
все эти товары в категории Запчасти без разделов
так как группа номенклатуры задачется через параметр в 1С - Вид номенклатуры
Виды номенклатуры мы можем выгружать в справочник.
Делать думал так:
1) у товаров в категории Запчасти будет свойство - Категория (привязка по ID вида номенклатуры)
2) на основании видом номенклатуры будет выводится структура (для этого надо будет сделать компонент)

Maxim
05.10.2016
10:38:35

Pavel
05.10.2016
10:39:33


Maxim
05.10.2016
10:40:00
innodb_flush_log_at_trx_commit=0 очень ввыручило
естественно все эти советы универсальны. и у каждого свои частные случаи
тому кому я это написал этого достаточно будет )
Еще один глупый вопрос. Когда и как стоит применять пхп.интерфейсы?
Для меня интерфейс это жесткое обозначение того, что и как моей программе необходимо реализовать. Жесткие рамки.
сейчас у меня есть 2 интерфейса, 1 для восстановления данных, второй для удаления данных.
и там и там присутствуют 2 обязательных метода, которые реализуют необходимые методы и гарантируют работу апи. это getEntity и setData
так вот руководителю не нравится, говорит мол не на своем месте эти два метода. предлагает третий интерфейс. что то я немного не согласен с ним. получается у прослойки между модулями и моим модулем должен быть класс реализующий массив (пока только трех) интерфейсов.
с ростом программы будет расти кол-во интерфейсов?
вообще смысл всего диалога кроется в долговременной (в контексте битрикса читай бесконечной) поддержке этих интерфейсов.