@symfony_php

Страница 614 из 1418
Vladislav
01.02.2018
15:35:30
ой, у тебя еще докер

а небось все через волюм?

хотя если линукс то все ок

надеюсь не мак?

Google
Roman
01.02.2018
15:36:04
а небось все через волюм?
Мак, через вольюм только src

Кэш и вендоры внутри

Sergey
01.02.2018
15:36:14
извращенцы

Vladislav
01.02.2018
15:36:14
а, ладно) тогда ок

извращенцы
наркоманы

Alexey
01.02.2018
16:12:22
Кто-нибудь пробовал профилирование в xdebug 2.6? Какие-то странные он генерит логи, как будто не до конца записывает.

Alan
01.02.2018
18:32:34
кто нить использует с постгрей uuid как первичный ключ ? как оно на больших табличках, вроде 30 миллионов записей?

ну и просто опыт интересен, какие нюансы, как производительность

Sergey
01.02.2018
18:34:54
та как, нормально

терабайтные базы на монге и кассандрах так и живут

без автоинкрементов)

Alan
01.02.2018
18:36:28
ну там и другая реализация, а тут еще джойны будут

по гуглу противоречиво как то, в мускуле говорят с ними плохо, а в постгре вроде индексы по-другому работают и нет ощутимых проблем с фрагментацией, и uuid бинарный. ток реального опыта ненагуглил)

Google
Alan
01.02.2018
18:43:43
размер базы и какие то просадки в производительности которые не почувствуешь пофиг, но не хочется на проекте с базой в 10 гигов испытывать трудности террабайтных проектов )))

Evgeny
01.02.2018
18:45:43
в терабайтных базах дубликат id никто не заметит либо ее цена ничтожна мала будет %)

Alan
01.02.2018
18:46:25
та в нашей тоже если я не скажу - никто не заметит )))

@fes0r у тебя постгря я помню)

Andrew
01.02.2018
19:10:48
А мне вот тоже интересно uuid как будет работать в postgresql? Естественно все ключи обязаны быть уникальными, к примеру если проект комерческий, вряд ли когото устроит один аккаунт на несколько незнакомцев)

Alan
01.02.2018
19:11:38
уникальность вряд ли будет проблемой, 30 миллионов записей оно норм сгенерировало без дубликатов

Sergey
01.02.2018
19:12:07
ты быстрее биткойн смайнишь на телефоне чем коллизию uuid получишь

Andrew
01.02.2018
19:12:50
@fes0r или автоинкремент лучше?

@fes0r :D

@fes0r там есть либы, я видел, можно на сайтики закинуть, и фармить биткоины

Sergey
01.02.2018
19:13:34
@fes0r или автоинкремент лучше?
смотря в какой реализации. Если ты делаешь их на базе секвенсов в постгре - то терпимо потому что можно их можно получать хоть пачками, хоть заранее....

а вот мускульные автоинеркементы это боль

Alan
01.02.2018
19:14:26
а проивзодительность с uuid на больших таблицах тоже не проблема?

Sergey
01.02.2018
19:14:26
боль страдания и унижение, которые провацируют тебя либо полностью на uuid переключиться либо у тебя data-centric приложения и вообще класть тогда

Andrew
01.02.2018
19:14:54
@fes0r 1 - что такое секвенсы? 2 - мускуль, автоинкремент? - _ - я думал там только автоинкремент нормально работает

ибо в мускле выборке медленее, а uuid многа весит

я сейчас в своем проекте делаю так

/** * @var integer * * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="SEQUENCE") * @ORM\SequenceGenerator(sequenceName="user_id_seq", initialValue=1, allocationSize=1) * * @Groups({"list", "single"})

Google
Andrew
01.02.2018
19:15:44
@fes0r да, выборка по Pk

3 - data-centric, не слышал

oops

Sergey
01.02.2018
19:17:17
@fes0r да, выборка по Pk
ну так индексы ж

@fes0r 1 - что такое секвенсы? 2 - мускуль, автоинкремент? - _ - я думал там только автоинкремент нормально работает
1. последовательность. представь что у тебя есть возможность получать следующий элемент ДО вставки в таблицу а не только во время оной. 2. они нормально работают, сама концепция не работает. 3. ну это когда у тебя тупо crud и тебе пофигу

Andrew
01.02.2018
19:19:21
не, если на сайте предусмотрены не только CRUDs

в принципе, можно было бы раздели, где - то юзать uuid, а где то автоинкремент

к прмиеру, если идет импорт продуктов, можно sequence думаю

и uuid

если верно понял

а вот где идет юзер, то есть только 1 за раз, лучше думаю автоинкремент будет

Sergey
01.02.2018
19:20:38
ибо в мускле выборке медленее, а uuid многа весит
uuid весит где-то 128 бит, то есть 16 байт. 1 лярд записей - 16 гигабайт юидов. Ну и сколько там центов за гигабайт нынче?

Andrew
01.02.2018
19:21:14
@fes0r дело в головной боли которую может все ето вызвать, как клиенту, так и разрабу да и проекту в целом

Sergey
01.02.2018
19:21:14
в принципе, можно было бы раздели, где - то юзать uuid, а где то автоинкремент
да, тупо использовать что-то одно везде - это так себе мысль. А вот выбирать подходящее по месту - вполне разумно.

у меня пока небыло проектов с реально большими объемами данных (это такие которые не помещаются полностью в оперативку сервера)

Andrew
01.02.2018
19:22:13
скажем, 1 000 000 000 записей, сколько весит бд и занимает места то такое, а вот как долго будет идти выборка, вставка и т.д.

а еще програмная реализация

Google
Andrew
01.02.2018
19:22:42
мне проект дали на работе

правки

там генерили id следующим образом

перед вставкой, брали из бд последний id, делали ObjectValue, и сохраняли в бд

все упало почти сразу

даж индексы не помогли

Andrew
01.02.2018
19:24:03
))

Sergey
01.02.2018
19:24:03
не понял

Admin
ERROR: S client not available

Andrew
01.02.2018
19:24:13
все просто

нет autoincrement

нет uuid

Sergey
01.02.2018
19:24:29
а ну сами себе злые буратины

что тут скажешь

Andrew
01.02.2018
19:24:41
перед вставкой бд, шлем запросик, к бд, вытягиваем последний id

Sergey
01.02.2018
19:24:43
ну мол что-то что гарантирует уникальность должно быть

рэдис хотя бы для кэша

Andrew
01.02.2018
19:24:53
угу

Sergey
01.02.2018
19:25:11
там cas штуки атомарные какие

Google
Sergey
01.02.2018
19:25:18
удобно, просто, надежно

Andrew
01.02.2018
19:25:28
cas?

Sergey
01.02.2018
19:25:40
compare and swap и прочие примитивы для атомарных операций

ну или банальным INCR

резервируешь себе айдишку и играешься

так же в постгресе собственно

резервируешь айдишку, или пачку айдишек, и живешь себе

Andrew
01.02.2018
19:27:59
как с сиквенсами, да?

что я кинул кусок кода

там можно брать сколько бронировать

* @ORM\GeneratedValue(strategy="SEQUENCE") * @ORM\SequenceGenerator(sequenceName="user_id_seq", initialValue=1, allocationSize=1)

в примере 1)

лана, всем спок

Sergey
01.02.2018
19:37:35
там можно брать сколько бронировать
в контексте доктрины рассматривай такой вариант: class User { public function __construct(UserID $userId, string $email, string $password); }

вот такую штуку с автоинкрементами ты не получишь

Alan
01.02.2018
19:46:02
а ну в нем uuid сгенерирован наврено

Petr
01.02.2018
20:09:09
по гуглу противоречиво как то, в мускуле говорят с ними плохо, а в постгре вроде индексы по-другому работают и нет ощутимых проблем с фрагментацией, и uuid бинарный. ток реального опыта ненагуглил)
Марко Пиветта (один из основных разработчиков Доктрины) всякий раз говорит, что UUID — вообще тема, и всем советует его использовать

Alan
01.02.2018
20:11:41
а чем генерить uuid ? у доктрины что то было и ramsey етсь

Petr
01.02.2018
20:11:57
Ну ладно. На самом деле я немного преувеличиваю. Кажется, в этой презентации он рассказывал про UUID, и про множество прочих не менее интересных вещей. Рекомендую к ознакомлению: youtu.be/WW2qPKukoZY

Страница 614 из 1418