romy4: то, что отсортировано уже по ключам при добавлении в базу - не сортируется при запросе, если нет доп. отношений с другими данными.
а timestamp - всегда сортируется по ключам внутри БД на системном уровне базы и это не зависит от следующих факторов никак: использовалось это поле в запросе, были ли условия для этого поля или была ли сортировка asc или desc.
abcd0x00: "А сейчас в ДОС посадить современного пользователя, он ничего не сможет там сделать. Да что говорить о пользователях, сисадмины не ориентируются."
Да, это точно... я вот по привычке с NC работаю с файлами в Far Manager и пользуюсь командной строкой, также пишу bat-файлы с errorlevel и циклами для своих нужд! И не хочется менять ничего!)))
Поставил dig и wget дополнительно для консоли и еще пару нужных nix-утилит и отлично вообще)
Константин : "Это же позволит в одной и той же итерации вести проверку, как на вертикальное, так и на горизонтальное совпадение, и плюсом еще и на совмещенное совпадение "крестом""
Если вертикальная и горизонтальная - это плоский массив, то после определения возможных битов - можно также создать набор "крестов" и в этом же цикле - транспонировать в "плоский" массив, на основе найденных битов (где точно может находиться искомое сочетание).
И тогда, в одну бинарную операцию - выявить все положения объектов.
"Вспомните про операции SHL и SHR" - да помню я, только вот как тут выгоднее их применить - пока не могу увидеть.... они только или для степени 2-ки, или как конвейер стека. В общем, тут подскажите, плс.
Пока только INC и DEC вижу, как можно применить для циклов)
Т.е. фактически, нужно просто грамотно сворачивать логику перебора, что у меня пока плохо получается, хотя уже давно кодирую)
Таким образом можно и любые массивы данных сравнивать в любом языке в одну операцию: 1TB & 1TB = 1TB (логич. умножение двух террабайтных данных)
Правда, вот неизвестно как делать это действительно параллельно при таком объёме операндов?
Куликов Александр: он даже Вас вогнал... а вот всё сразу видно)))
всех здесь так и учат: математически всё считать и никак иначе.
Вокруг столба - нужно один раз веревку обернуть!
romy4:
1. "а никак не выбирает ровно 2000000-20 записей"- возможно Вы имели ввиду: "а никак не выбирает меньше ровно на 2000000-20 записей"?
Это совсем разные цифры)
2. А про скорость отдачи, советую посмотреть на запрос по-внимательнее!
Там есть условие, которое автоматически индексируется, если является полем timestamp. В итоге, при сортировке по этому полю, автоматически отбрасывается всё, что выше (старее) этой даты и эти записи не просматриваются.
"Так что вам минус за знание внутренней работы mysql."
Ок. Минус - принят.
Константин : PS: еще вот подумал, что поворот на 90 градусов не нужен, если мы ищем только левый верхний угол объекта. Поэтому, мы можем заполнить пустые биты следующими 2-мя строками за текущей, чтобы не гонять 0-ые вхолостую. Т.е., будет 8 вместо 24, что уже в 2/3 раза меньше будет вычислений!
Константин : да что там говорить)) тут ещё пилить и пилить....
Про битовую ща еще подумал:
1. Можно в одну строку (я пока байтами делаю, но всё же для начала...) сделать в одном цикле горизонталь и вертикаль сразу в одну строку, и здесь же (в этом же цикле) - создать 2-ю строку: жёлтую сетку (см. мой рисунок).
2. Затем просто и выполнить битовое умножение (AND) этих данных и полученные биты - будут как раз указывать на индексы 1-го приближения: возможные места, где может быть 111 подряд по вертикали или горизонтали.
3. Затем сформировать маску и по 1-й строке - снова умножение.
Полученная строка: будет содержать 111 или 000.
4. Затем отсеять переносы на след. строку тоже маской и умножением (AND).
5. И вывести индексы цепочек бит с 111 из результата перемножения.
Khkystou: это сниффер... https://www.wireshark.org/
Ставьте себе на комп (Windows), запустите и настройте фильтры, пробрасывайте порт из-вне (с того хоста, куда маяк шлёт данные) на свой Win-комп, мониторьте трафик и спокойно отлаживайте PHP-код.
Также, можете прокинуть порт через SSH-туннель с удалённого хостинга (хост-площадки вашей) чтобы отладить на своей машине, а как всё будет готово - просто поднимите там нужный порт и всё.
weranda: это хреновина (где просят ввести сумму: X+Y= ? ), которая поможет защищать от спама при регистрации любой действующий сайт (Вы не смотрите на форму там, где поля и кнопка "Поиск").
Также, можно туда вставлять любые Ваши задания, PHP/JS-игры и т.д. - фантазии нет предела.
Т.е. это фактически антибот-капча, которая полностью перехватывает POST-запросы, защищает от спама и встраивается в любой сайт без изменения его кода!
Почему я запостил это - чтобы показать необычность защиты при регистрации (и не только): задание появляется только после того, как Вы отправите форму.
Dark Hole: в общем, на периодах надо работать: нужна линия с 3-мя 1-ами, значит надо делать массив "плоским" и перебирать (начиная с нуля): 2,5,8,11,14 и т.д., чтобы найти "1". а потом по найденным элементам проверять соседние.