3 ms·
I've started using postgres at work after a decade of mysql My expectations were that postgres had a better query engine that was able to make more advanced pl
by slifin 4y ago
I've started using postgres at work after a decade of mysql
My expectations were that postgres had a better query engine that was able to make more advanced plans
Operationally it sounded easier to shard mysql, I thought they were the main trade offs
In reality I have been puzzled at the query planner in postgres, rewriting queries to be equivalent (to me at least) causes wildly different plans
Coaxing the engine to use an index is much harder, if not impossible in postgres so far
JSON support seems better but overall that encourages their use which has pros and cons but can definitely hinder schema reading
So far it's not much greener for me on the otherside of the fence, going to continue to evaluate datomic and miss sequel pro, table plus is ok but weird in places
- slifin 4y agoOh and as a Clojure developer it's annoying that I have to start caring about types again I'm surprised that's not bought up more in hacker news conversations Postgres is very picky type wise when you construct comparisons, which can often involve casting when dealing with the edges of a JSON blob and bleed through sub queries which can mean indirect type errors
- slifin 4y agoInterested to learn more about the query planner over time but just some initial thoughts
- andyzweb 4y agohttps://www.youtube.com/watch?v=XA3SBgcZwtE https://www.youtube.com/watch?v=XA3SBgcZwtE. Good talk by a core developer This is another presentation from a core developer: https://momjian.us/main/writings/pgsql/optimizer.pdf https://momjian.us/main/writings/pgsql/optimizer.pdf
- mdaniel 4y ago> it's annoying that I have to start caring about types again that sentence actually pains me
- hansvm 4y agoRead it as having to care about strict types as opposed to compatible types. Sort of like array broadcasting or casting bools to other numeric types or applying a bitwise xor to 32-bit floats -- if two types are obviously compatible with the operation I'm trying to do to them it's often nice to allow the implicit cast.
- bilboa 4y agoI'm puzzled by your statement that "Coaxing the engine to use an index is much harder, if not impossible in postgres so far". If this were true it would make Postgres pretty much unusable for any non-toy applications, which is clearly not the case. I'm assuming there are some qualifiers missing from this statement.