
Yuriy
08.08.2018
20:30:36
а ты про кеш не вспомнишь?
Кешить можно всё что угодно, в тч запросы к массивам и тут mysql со всеми своими механизмами будет далеко сзади)

Dmitry
08.08.2018
20:30:37
Юрий, здесь мало таких... интересующихся, тут больше думающих... надеюсь

Pavel
08.08.2018
20:30:37
Поэтому вообще непонятно что с чем ты сравниваешь.
Что такое запрос к массиву?

Google

Adel
08.08.2018
20:32:39

Yuriy
08.08.2018
20:36:20

Pavel
08.08.2018
20:36:39
А в каком ряде высоконагруженных задач у тебя данные лежат в 100 файлах ПХП ?

Dmitry
08.08.2018
20:39:55
Главное не проверять, как быстрее спуститься с 20 этажа - на лифте или по воздуху из окна

Adel
08.08.2018
20:48:41
мне надо было. чтобык кешам постоянно не стучаться.. этиданные нужны были прикаждом запросе. из 50 файлов всегда грузились два.
ноони были закешированы в памяти байткодом
поэтому работалошустро

Dmitry
08.08.2018
20:53:19
если не меняющиеся данные, то почему бы нет

Yuriy
08.08.2018
20:53:20
еще вопрос такой. а если записей не 50миллонов а 50триллионов?
Если это террабайты данных, то MySQL организуется по схеме горизонтального и вертикального шардинга (на физическом уровне это Ethernet) - и тут всё понятно. Что касается гипотетического решения на файлах/массивах, то я пока не панимэ как организовать серию серверов в кластер к которому могут иметь доступ несколько веб-серверов, на которые направляются запросы пользователей после балансировки. То есть не уверен что на физическом уровне можно так объединить сервера. Если схема решения всё же есть, то я б затестил. Но опять таки, скорость определяется узким местом - интерфейсом объединения серверов.

Adel
08.08.2018
20:54:11

Dmitry
08.08.2018
20:55:32
юрий... займись общей теорией программирования, алгоритмами, ооп... этим ты принесешь пользу себе и миру... а хайлоад на массивах тебя настигнет сам

Google

Adel
08.08.2018
20:59:17
но никто не называет это вертикальным шардингом :)

Dmitry
08.08.2018
21:00:48
про это просто говорят очень редко в ввиду малой распространенности

Pavel
08.08.2018
21:01:06
> по схеме горизонтального и вертикального шардинга
то есть диагональный шардинг

Yuriy
08.08.2018
21:18:45
А в каком ряде высоконагруженных задач у тебя данные лежат в 100 файлах ПХП ?
Представь, у заказчика говнохостинг и выделить на нём оперативки более 128М - ну это топ а то и меньше. Я не говорю ещё о max_allowed_packet для MySql. В подобных условиях, к примеру, прайс на 50 млн позиций будет адским хайлоадом и деление данных на файлы единственный вариант. Можно решить железом, но с другой стороны, почему бы не задуматься над архитектурой, которая будет масштабируема и эффективна. Хорошая архитектура выдержит как прайс на 50 млн позиций, так и очередную соц сеть на 100ни млн юзеров. И я не говорю что массивы это панацея, но показываю, что они как минимум в ряде случаев могут быть эффективнее sql бд.

Pavel
08.08.2018
21:19:58
а как ты засунешь 50 млн записей в массив если у тебя 128мб оперативки?
кокрастыке в этом случае тебе нужен mysql, весь покрытый индексами, абсолютно весь. и будет он шуршать, подгружая для обработки в память кусочки данных, а потом выгружая их

Dmitry
08.08.2018
21:25:07
массивы хороши только для поиска перебором или по ключу и только для тех данных, которые меняются очень редко и большими кусками сразу
это очень и очень специфичные кейсы
а если данных много, то не массивы, а структуры в файлах подобранные под данные и характер поиска

Yuriy
08.08.2018
21:28:32

Adel
08.08.2018
21:29:14
Юра борзый :)

Dmitry
08.08.2018
21:29:55
ну он массивы с мускулем бенчмарчит, такие всегда почти борзые

Adel
08.08.2018
21:30:19
хайлоад-мастера

ARDEV
08.08.2018
21:31:19
срачик

Dmitry
08.08.2018
21:31:54
да... а потом спросишь на собеседовании как устроен хеш индекс... и никто ответить не может как же мы ячейку то нужную находим...

Yuriy
08.08.2018
21:33:52
а как ты засунешь 50 млн записей в массив если у тебя 128мб оперативки?
Я его потому и разбил на 100 файлов по 500 000 запмсей в каждом. Это реальные цифры но задача гипотетическая. И да, повторюсь, индексами можно обложить и массивы, что увеличит скорость в неменьшее количество раз. И снова, повторюсь, не настаиваю, скорее как деление опытом. Не утверждаю что опыт илеальный) Нооо я бы предпочёл читать об опыте коллег; расшифровыать новичкам очевидное мне менее интересно.

Pavel
08.08.2018
21:36:33

Dmitriy
08.08.2018
21:36:44

Pavel
08.08.2018
21:37:33
Ты конечно можешь начать городить классы которые за тебя управляют памятью, грузят 1 файл, потом освобождают память из под него, грузят второй файл. Но тогда это все будет не быстрее mysql.

Adel
08.08.2018
21:38:07
кстати тв своем тесте наверняка не прогрел ее

Google

Adel
08.08.2018
21:38:19
до теста

Yuriy
08.08.2018
21:39:40
Юра борзый :)
Я по лайту. Коллега не заметил, что я не прошу его поучать не по теме. Но, видимо проблемы с чсв, комплексы может, у человека.

Dmitry
08.08.2018
21:39:48
дада... данные в файлах.. ну можно индексы приделать... ну неплохо бы какое то апи удобное для поиска... надо бы еще оптимизировать все это, что бы быстро куски менять... ах, да, конкурентность, как бы блокироваться поменьше... что? говорите, написал свою субд, только кривее, неудобнее и ненадежнее.... ну нее...

Yuriy
08.08.2018
21:41:03

Dmitriy
08.08.2018
21:41:24
массивно ориентированное программирование)

Dmitry
08.08.2018
21:42:04

Yuriy
08.08.2018
21:42:14

Pavel
08.08.2018
21:42:45
уймись)
Ты провел бенчмарк неправильно, сравнил несравнимое, для кейсов которых не бывает, с гипотетическими алгоритмами которые нереализуемы на практике. Поэтому все так хейтят твой отчет.

Dmitry
08.08.2018
21:43:25
зато через окно быстрее...

Pavel
08.08.2018
21:43:48

Dmitry
08.08.2018
21:45:31
работа с говнолегаси подрывает нервную систему ...

Dmitriy
08.08.2018
21:45:55
Мы 3 года назад искали по массиву грузили 90 гб в память. и искали там что нужно.
Разделяли на массивы по меньше.
в реальности оказалось не очень. быстрее и дешевле грузануть чем пилить костыли с разделением

Adel
08.08.2018
21:46:28

Dmitry
08.08.2018
21:47:22
мы делили апельсин...

Dmitriy
08.08.2018
21:47:44

Yuriy
08.08.2018
21:47:54

Dmitry
08.08.2018
21:57:51
так я и глупости не несу в этом чатике...
надеюсь...
ньюрелик прикольная штука...

Adel
08.08.2018
22:02:07

Google

Adel
08.08.2018
22:02:15
ай стоп
ты ВСЕ данные загружаешь?
тогда смысла ясное дело нет...
но никому не нужны сразу все 50кк данных
их селектят по ид

Dmitriy
08.08.2018
22:03:56
и как в массиве делать сложные выборки ?

Admin
ERROR: S client not available

Yuriy
08.08.2018
22:04:41
надеюсь...
Возможно, глупости это всё, до чего ты не дошёл. Такое бывает. Я к примеру, не очень понимаю, зачем во все задачи тащат ООП даже уровня Hello World. Возможно, потому, что им типа-гуру нашёптывают, что ООП это вот всё. Но при этом моё ЧСВ в подобных ситуациях не страдает от такого - пропущу, не стану читать. Попробуй.

Adel
08.08.2018
22:06:16

Dmitriy
08.08.2018
22:07:51

Владимир
08.08.2018
22:09:46
Да это поди Тарас под другим именем…не бывает 2-х таких людей же)

Yuriy
08.08.2018
22:11:24
дада... данные в файлах.. ну можно индексы приделать... ну неплохо бы какое то апи удобное для поиска... надо бы еще оптимизировать все это, что бы быстро куски менять... ах, да, конкурентность, как бы блокироваться поменьше... что? говорите, написал свою субд, только кривее, неудобнее и ненадежнее.... ну нее...
Вот тут твой месседж ясен, но я сказал выше, что привёл тест не ради того, чтобы доказать что массивы лучше mysql, что надо писать свою субд на массивах. Хотя местами - стоит рассмотреть использование массивов.

Dmitry
08.08.2018
22:25:13
ах зачем я перед сном посмотрел в слак... опять что-то упало

Yuriy
08.08.2018
22:28:51

Adel
08.08.2018
22:29:32

Dmitry
08.08.2018
22:33:09
миленько...

Artur
09.08.2018
03:29:36

Artem
09.08.2018
05:50:51
я бы хотел поприсутствовать на собеседовании с этим чуваком и соверешенно не важно с какой стороны стола он будет сидеть. Это определенно будет весело :)

dypa
09.08.2018
05:53:52

Google

Artem
09.08.2018
05:57:40
да не мне даже нравится когда человек делает ресерч, чтобы что-то понять. Но делать это откровенно с огроомными проблелами в основах CS -это тупик, а игнорировать аргументы -это проф непригодность. Надесь он просто тролил вас тут )) На самом деле забавно, когда человек делает очевидные и наивные выводы, но аргументирует этим какую -то ахинею)
А вот такая беседа на собесе -это прям радость. Там время оплачено и можно предложить реализовать свою идею и поговорить уже по факту применив эту реализацию к реальной задаче.

dypa
09.08.2018
06:19:22
на собеседовании подобный кандилат - это катострофа, человек приходит и изливает на тебя свое сумашествие, тратит твое время и твои силы.

Артем
09.08.2018
06:32:38
а по теме поста. Научная работа не обязана иметь под собой прикладное значение. Надо отнестись как некое испытание - "А давайте без оптимизации MySQL сравним и Array в php". До этого исследования никто бы точно не сказал на сколько одно медленнее другого.
С практической точки зрения, тоже не понимаю при каких условоиях нужно затащить 50млн записей в память и с ними потом оттуда работать.


Feodor
09.08.2018
06:44:30
А точно правильно на аргументированную точку зрения говорить что глупости это всё до чего ты не дошёл? Звучит как "сперва добейся". А научная работа обязана иметь строгую методологию, которой не предъявили.

Yuriy
09.08.2018
06:45:05
Стоило "разместить объяву" о скорости работы массива в сравнении с MySQL в рамках частного теоретического случая и понеслось ))) Я уже, оказывается, предлагаю заменять MySQL массивами во всех задачах и, конечно, делаю это сидя на собеседовании у местных сан-сеев, которые привыкли поднимать своё ЧСВ за счёт ответов на вопросы а-ля "не подскажете, почему PHP не работает" ) Амежтем, мне не более чем интересно изучать возможности интерпретатора в нюансах, к примеру, связанных с потребляемыми ресурсами, сравнивать эти возможности. И, сколько я не видел подобных тестов, подобными вопросами занимаются как раз люди с опытом. Хотя, наверное, опытом не таким большим, как у здешней петросянии.


Feodor
09.08.2018
06:45:59
Стоило "разместить объяву" о скорости работы массива в сравнении с MySQL в рамках частного теоретического случая и понеслось ))) Я уже, оказывается, предлагаю заменять MySQL массивами во всех задачах и, конечно, делаю это сидя на собеседовании у местных сан-сеев, которые привыкли поднимать своё ЧСВ за счёт ответов на вопросы а-ля "не подскажете, почему PHP не работает" ) Амежтем, мне не более чем интересно изучать возможности интерпретатора в нюансах, к примеру, связанных с потребляемыми ресурсами, сравнивать эти возможности. И, сколько я не видел подобных тестов, подобными вопросами занимаются как раз люди с опытом. Хотя, наверное, опытом не таким большим, как у здешней петросянии.
А можно более подробное описание эксперимента? Алгоритм работы с массивами и запросы?


Yuriy
09.08.2018
06:48:03
Дай угадаю, like %xxx% и без индексов?
Артур, индексировать можно и массивы. Проверял да, лайком. Но и значения массива можно сравнивать не только strpos'ом. Факт в том, что эксперимент относительно чистый с использованием стандартного инструментария, так скажем.

br
09.08.2018
06:48:40
а MySQL vs SplFixedArray тесты проводились? стоит перехеодить на второе?

Yuriy
09.08.2018
06:52:06

br
09.08.2018
06:53:58
а че за случай такой частный?

dypa
09.08.2018
06:56:19

Yuriy
09.08.2018
07:03:02
а че за случай такой частный?
Он теоретический для изучения возможностей. Хотя можно подверстать под него вполне себе практическую историю, в которой главное что имеем это ограниченный хостинг (обычный разделённый), в рамках которого любая задача с миллионами записей становится хайлоадом.

Артем
09.08.2018
07:03:13

Yuriy
09.08.2018
07:04:41
Ребят, да какое исследование и ресёрч? )) Ну мне самому смешно ) Не более чем один из тестов. Ну провалилась на нём мускуль - ну тем и интересен показался ))

dypa
09.08.2018
07:04:55