• Поскажите юзерскрипт для хабра?

    Megas
    @Megas Автор вопроса
    К сожалению, не оно
  • Как сделать хендлер на элементы в массиве?

    Megas
    @Megas
    demortall как то вот так:
    const makeAuthOnClick = (arr) => {
    	const handler = () => {
    		//здесь код вашего хендлера
    	};
    	
    	document.querySelectorAll(arr.join(', ')).forEach(element => element.addEventListener('click', handler));
    };

    я добавил объединение всех тэгов в один селектор, так что достаточно одного вызова querySelectorAll
  • Возможен ли такой функционал в Google Sheets?

    Megas
    @Megas
    А что вызывает сложность то? Из описания вроде все просто:
    - Создаете нужный документ с табличкой
    - Шарите табличку между работниками с возможностью им изменять документ
    Вот и все. Какие проблемы то?
  • Вывод данных из таблицы в базу mysql?

    Megas
    @Megas
    SergeyABC это вам надо спрашивать разработчиков программы, только они знают как конкретно они реализовали экспорт данных.
  • Как проверить полное завершение js функции?

    Megas
    @Megas
    Сергей в случае запуска таймера - никак не отследить. С точки зрения JS, функция заканчивает работать когда последняя ее команда отрабатывает, а то что в теле функции могут быть запущены таймеры которые в какой то момент запустят другую функцию Х (которая может быть и анонимной), так это уже другая функция будет работать, ту что вы пытаетесь отследить уже давно закончит работать. Т.е. в данном случе вам нужно следить не за завершением функции А, а за завершением функции Х и если она определена в теле функции А которую вам нельзя менять, то тут надо искать другой подход, к примеру отслеживать, что эта функция Х делает и от этого уже отталкиваться.
  • Как проверить полное завершение js функции?

    Megas
    @Megas
    Сергей В 22 все легко реализовывается если можно менять функцию А, но у вас это почему то запрещено.
  • Вывод данных из таблицы в базу mysql?

    Megas
    @Megas
    SergeyABC Ну если в программе реализован экспорт данных через ODBC, то просто почитайте документацию к программе, все должно быть там описано

    P.S. Если я правильно понимаю о какой программе вы говорите, то тут все написано: https://euvgub.github.io/quik_user_manual/ch6_2.html
  • Как отрендерить Диаграмму при помощи mPDF?

    Megas
    @Megas
    А в HTML как генерируете диаграму?
  • Вывод данных из таблицы в базу mysql?

    Megas
    @Megas
    Не до конца понятно что это за программа источник, но если в самой программе нет встроенной опции синхронизации данных с БД, то ничего готового вы наврятли найдете. Да нужно будет писать код который по таймеру будет считывать данные с таблицы и отправлять их в БД.
  • Порекомендуйте подходящую базу данных?

    Megas
    @Megas Автор вопроса
    rPman на данный момент уже используем партицирование по айди сайта и субпартицирование по дате. Пока точных цифр не скажу, так как только недвно поменяли тип партицирования, но вроде как прироста в производительности не заметили.

    сейчас как я понимаю у вас просто набор данных, с индексами и вы этим данным пишете select count() .. where страница, максимум объединив в запросе несколько таблиц, по которым разбиты данные

    Совсем нет, там как раз чтото вроде `SELECT SUM(filed6), SUM(filed7), AVG(field8)... FROM table WHERE siteId=x AND page=Y ...`, в отчетах постоянно меняется условие в WHERE, поэтому дальнейшая агрегация невозможна.
  • Порекомендуйте подходящую базу данных?

    Megas
    @Megas Автор вопроса
    rPman на данный момент данные в таблице агрегированы все по максимуму, дальнейшая агрегация невозможна из-за разницы в отдельных отчетах (гдето надо агрегировать по страницам, а гдето по отдельному элементу).

    По поводу MyISAM, направление интересное, попробуем.
  • Порекомендуйте подходящую базу данных?

    Megas
    @Megas Автор вопроса
    Adamos Не, к сожалению ID элемента из индекса нельзя вытащить, так как иногда нужно генерировать отчет по конкретному элементу.

    По поводу JSON для полей 6+, думал о таком варианте, только вот на скорость это никак не отразится. Запись тормозится в первую очередь из за большого индекса (неспроста скорость записи в пустую таблицу в разы выше, чем +1Г строчек в ней). Плюс как вы и сказали, при генерации репорта возникают сложности, в текущий момент я могу сразу в запросе аггрегировать эти данные (суммировать к примеру) и получить готовый результат, а так придется тянуть кучу данных через сеть и аггрегировать на стороне кода. А работа с JSON у самого MySQL крайне неудобная, плюс сомневаюсь, что это хоть как то положительно скажется на скорости.
  • Порекомендуйте подходящую базу данных?

    Megas
    @Megas Автор вопроса
    FanatPHP, согласен, на данный момент, как вы и написали, для меня все БД на одно лицо, лично работал лишь маленьким их количеством (MySQL, MS SQL, тот же Mongo и всякая ерунда вроде SQLite), но как то к вопросу надо подходить и поэтому спрашиваю, чтоб получить хоть какие то направления...
    На in-memory БД памяти не напасешься с таким количеством данных. На данный момент мы храним данные за текущий день в Redis, а потом от туда скидываем в MySQL.
  • Порекомендуйте подходящую базу данных?

    Megas
    @Megas Автор вопроса
    FanatPHP, знаю что конкуренты с похожей системой используют ClickHouse. Если других идей от когото не поступит, то наверно и мы будем присматриваться к ней.

    Saboteur, отчеты в первую очередь завязаны на отдельные сайты и отдельные страницы на этом сайте, периоды тоже важны, но наверно это второстепенно. Основные поля описал, все остальное не так важно, они просто содержат некие данные, которые при генерации отчета как либо аггрегируются.
  • Порекомендуйте подходящую базу данных?

    Megas
    @Megas Автор вопроса
    AlexNest Все возможно, я не ограничен исключительно реляционными БД. Вопрос в том, а какая другая БД будет работать лучше при таких данных (структура + количeство)? Не хочу потратить кучу времени на переезд, к примеру, на ту же MongoDB, а потом обнаружить, что выиграл от этого 2-3% производительности.
  • Почему запуск PHP скрипта под Apache на много медленее, чем под CLI?

    Megas
    @Megas Автор вопроса
    Sand, Весь скрипт большой, нет смысла его приводить здесь, там много логики, время работы я засекал именно на функции отправки команд в Redis. Для этого используется библеотека Predis и вот такая обертка на Pipeline которая сбрасывает содержимое в Redis каждые 10К команд.

    class PipelineBatchProxy implements \Countable
    {
    	/** @var \Predis\Pipeline\Pipeline */
    	private $pipeline;
    	
    	private $totalCounter = 0;
    	private $currentCounter = 0;
    	private $batchSize;
    	
    	public function __construct(\Predis\Pipeline\Pipeline $pipeline, int $batchSize = 10000)
    	{
    		$this->pipeline = $pipeline;
    		$this->batchSize = $batchSize;
    	}
    	
    	public function __call($method, $arguments)
    	{
    		$ret = call_user_func_array([$this->pipeline, $method], $arguments);
    		
    		$isExecuted = false;
    		
    		if ($method === 'execute') {
    			$isExecuted = true;
    		} else {
    			$this->totalCounter++;
    			$this->currentCounter++;
    		}
    		
    		if ($this->currentCounter >= $this->batchSize) {
    			$this->pipeline->execute();
    			$isExecuted = true;
    		}
    		
    		if ($isExecuted) {
    			$this->currentCounter = 0;
    		}
    		
    		return $ret;
    	}
    
    	public function count(): int
    	{
    		return $this->totalCounter;
    	}
    }


    Краткий код для проверки можно написать примерно так:

    $pipeline = new \PipelineBatchProxy($redis->pipeline());
    for ($i = 0; $i < 1000000; ++$i) {
    	$pipeline->set('somekey'.$i, $i);
    }
    $pipeline->execute();
  • Как обнаружить появление ранее скрытого елемента в браузере?

    Megas
    @Megas Автор вопроса
    И как оно поможет? Не отслеживать же мне по таймеру изменение этого параметра у всех скрытых элементов.
  • Порекомендуйте нейронную сеть для задачи?

    Megas
    @Megas Автор вопроса
    Пробовал еще 2 года тому назад (об этом даже написано в моем старом вопросе), Vision API дает крайне не точные результаты.
  • Как сгенирировать информацию из тега h3 в тег h5 с помощью js?

    Megas
    @Megas
    Максим js, Имелась в виду ссылка по которой открывается модальное окно
  • Как уловить ошибку о которой умалчивает PHP интерпритатор?

    Megas
    @Megas Автор вопроса
    xmoonlight, Вы сами то попробуйте, что рекомендуете...