Konstantin
я навскидку не могу придумать разницу, кроме частичного индекса постгреса
Konstantin
ничего не понял
Konstantin
но даже сходил в документацию
Konstantin
conflict_target Specifies which conflicts ON CONFLICT takes the alternative action on by choosing arbiter indexes. Either performs unique index inference, or names a constraint explicitly. For ON CONFLICT DO NOTHING, it is optional to specify a conflict_target; when omitted, conflicts with all usable constraints (and unique indexes) are handled. For ON CONFLICT DO UPDATE, a conflict_target must be provided.
Konstantin
It is often preferable to use unique index inference rather than naming a constraint directly using ON CONFLICT ON CONSTRAINT constraint_name.
Konstantin
https://www.postgresql.org/docs/current/sql-insert.html#:~:text=ON%20CONFLICT%20DO%20NOTHING%20simply,can%20perform%20unique%20index%20inference.
Konstantin
короче, базе нет никакой разницы, что вы там укажете, правильным способом является использование индекса, а не констрейнта. и в целом доктрина всё правильно делает, и да, никаких проблем с апсертами тут не будет, вы не дочитали
Konstantin
а что там указал?
Konstantin
надо писать ON CONFLICT (email) DO UPDATE SET ...
Nikolay
а что там указал?
поле с уникальным индексом
Konstantin
email - это имя поля
Konstantin
ну значит индекса такого нет ещё?
Nikolay
email - это имя поля
Так и указал
Nikolay
Еще раз посмотрел, индекс есть
Konstantin
тем не менее, оно так должно работать, проблема в чем-то ещё - невнимательность, опечатка или типа того
Юра
В тему супер небагованного пхпшторма
Юра
кто-то сталкивался с таким что не показывает директории?
Юра
Юра
рестарт и чистка кеша не помогает
Юра
помогло убить .idea папку
Алексей
помогло убить .idea папку
только это и помогает, я один раз вообще шторм переустановил из-за этого бага, но не помогло
Jonny
Ага, Я как-то так операционную систему поменял
Мне вообще пришлось место жительства менять 🥲
Юра
Вы вот спрашиваете почему типо не пхп а джава. Ну вот пример. Накидал я значит quick sort. Там и там. Алгоритм один в один. PHP в 10!! раз медленне. Ну что за гребаный стыд
Юра
и это при том что в пхп не просто массив а SplFixedArray
Igor
Вы вот спрашиваете почему типо не пхп а джава. Ну вот пример. Накидал я значит quick sort. Там и там. Алгоритм один в один. PHP в 10!! раз медленне. Ну что за гребаный стыд
Ну, какие-то алгоритмы быстрее, какие-то медленнее. Был где-то подробный бенчмарк с кодом по разным алгоритмах в условиях определенных языков
Dmitriy
большинству обычных проектов похер, там БД в основном влияет на перфоманс
Юра
Ну похер не похер но достичь 3мс ответа от рест апи на пхп симфони не получается ни при каких раскладах
Юра
Ну голого апи, без БД
Юра
На спринге 3-5 мс
Igor
На спринге 3-5 мс
А что за код, который в 10 раз медленнее? Есть возможность показать?
Burlakovmax
Кстати не нашел где Хищника посмотреть, аж расстроился, так как после битв арморов тут был настроен посмотреть:/
Юра
Igor
Кстати, не знает кто, есть ли у центрифуги (centrifugo) возможность "вложенных" неймспейсов? category:poher/product:1213?
Юра
А что за код, который в 10 раз медленнее? Есть возможность показать?
for ($x = 1; $x <= 100; $x++) { $arr = range(0, 10000000, 1); shuffle($arr); $arr = SplFixedArray::fromArray($arr); $timerStart = microtime(true); quickSort($arr, 0, count($arr) - 1); $timerEnd = microtime(true) - $timerStart; var_dump($timerEnd); } function quickSort(SplFixedArray &$arr, int $start, int $end) { if ($start < $end) { $idx = partition($arr, $start, $end); quickSort($arr, $start, $idx - 1); quickSort($arr, $idx + 1, $end); } } function partition(SplFixedArray &$arr, int $start, int $end): int { $pivot = $arr[$start]; $i = $start; $j = $end + 1; while($i < $j) { do { $i++; } while ($i <= $end && $arr[$i] <= $pivot); do { $j--; } while ($j >= $start && $arr[$j] > $pivot); if ($i < $j) { $tmp = $arr[$j]; $arr[$j] = $arr[$i]; $arr[$i] = $tmp; } } $tmp = $arr[$j]; $arr[$j] = $arr[$start]; $arr[$start] = $tmp; return $j; }
Юра
class Solution { public void solve(int[] data) { quickSort(data, 0, data.length - 1); } private void quickSort(int[] data, int start, int end) { if (start < end) { int idx = partition(data, start, end); quickSort(data, start, idx - 1); quickSort(data, idx + 1, end); } } private int partition(int[] data, int start, int end) { int pivot = data[start]; int i = start; int j = end + 1; while (i < j) { do { i++; } while (i <= end && data[i] <= pivot); do { j--; } while (j >= start && data[j] > pivot); if (i < j) { int tmp = data[j]; data[j] = data[i]; data[i] = tmp; } } int tmp = data[j]; data[j] = data[start]; data[start] = tmp; return j; } }
Юра
ну там я вырезал цикл
Юра
и замер
Юра
Ну вот на 10млн айтемов пхп 10 секунд, джава 0.8 сек
Юра
Я ума не приложу почему такая разница
Igor
Я ума не приложу почему такая разница
может в логике замера траблы)
Юра
Та не
Юра
Просто старт, энд разница
Юра
Меряю только алгоритм без подготовки данных
Юра
Скорее всего в доступе к элементам массива
Юра
В джаве скорее всего это просто получение инта по адресу, в пхп думаю все сложнее под капотом
Юра
Хотя не просто получение инта еще выход за пределы чекается. Но всеравно в пхп думаю там видимо из-за типов или ещё чего-нибудь все не так просто
Юра
Ведь SplFixedArray это просто контейнер который может хранить любые типы
Юра
6.7 сек
Юра
быстрее чем SplFilexArray )
Юра
удивительно
Nikolay
быстрее чем SplFilexArray )
Эти структуры не оптимизированы. Большая часть из SPL
Сергей
а если еще всю типизацию убрать?)
Юра
6.5
Юра
я не знаю может джава там какую-то хвостовую рекурсию применяет или еще чего-то там
Nikolay
https://habr.com/ru/post/280262/
Юра
меняет вызов на цикл хз короче
The Ant
у меня на 48ядерном сервере 1мс хелоу ворлд работает :D
Павел
пользуйтесь бесплатно
The Ant
<?php echo "hello world";?>
Нет, симфовский скелетон
The Ant
в котором нифига не наставлено )
Павел
Нет, симфовский скелетон
в индекс.пхп засунешь быстрее будет)
Павел
без всяких ваших костылей в виде симфони)
The Ant
ну такой се тралинг
Павел
окау(
The Ant
а вообще, пообмажутся своими докерами и страдают
Павел
Andrii
6.5
а если итераторы? :)
Konstantin
horse тред не читал. ты до ds уже добрался?
Юра
куда?
Andrii
куда?
https://www.php.net/manual/en/book.ds.php
Юра
та нафига мне эти датаструктуры чтобы сделать quicksort
Konstantin
побенчить чисто