<http://gtalug.org/meeting/2018-02/>
# Postgres, MVCC, and You (or, why COUNT(*) is slow) with David Wolever
It's hard to be a developer today without using a database⦠but they're often
surrounded by an air of reverent mystery.
One of those mysteries is why it's so slow to count all the rows in a table
using COUNT(*). After all, it's just a matter of walking a b-tree and counting
leaves⦠and that should be trivial to optimize!
In this talk I'll answer the question of "why COUNT(*) is slow" by taking a
deep dive into the the internals of Postgres' MVCC implementation, looking at:
The question of "why COUNT(*) is slow"
The on-disk storage layout and why, under the hood, it's not a b-tree
What Postgres means by MVCC, with examples of the utility of transactions
Introduce xid, xmin, xmax
Discuss tuple visibility
Explain VACUUM and xid wraparound
Show off transaction isolation levels
This talk is accessible to anyone who's used an SQL database, with enough depth
that experienced developers will find some interesting tidbits.
About me: David is a Pythonista from Toronto, Canada. He's co-founder of both
PyCon Canada â Canada's regional Python conference â and Akindi.com â a
small company that's making multiple-choice bubble sheet tests a little bit
less terrible. He's also the author of nose-parameterized, a parameterized
testing for every Python testrunner, and pprint++, a Python pretty-printer
that's actually pretty. Say hi on Twitter: @wolever!
## Location
George Vari Engineering and Computing Centre
245 Church Street, Room 203
Ryerson University
<http://goo.gl/maps/16oJ2>
<http://www.openstreetmap.org/way/23447525>
## Schedule
* 6:00 pm - Please discuss on the general mailing list (i.e. <talk@gtalug.org>)
where you want to go for dinner.
* 7:30 pm - Meeting and presentation.
* 9:00 pm - After each meeting, a group of GTALUGers move to The Imperial Pub
(54 Dundas St East) for refreshments and more socialising.
# Code of Conduct
We want a productive happy community that can welcome new ideas, improve every
process every year, and foster collaboration between individuals with differing
needs, interests and skills.
We gain strength from diversity, and actively seek participation from those who
enhance it. This code of conduct exists to ensure that diverse groups
collaborate to mutual advantage and enjoyment. We will challenge prejudice that
could jeopardise the participation of any person in the community.
The Code of Conduct governs how we behave in public or in private whenever the
Linux community will be judged by our actions. We expect it to be honoured by
everyone who represents the community officially or informally, claims
affiliation or participates directly. It applies to activities online or
offline.
We invite anybody to participate. Our community is open.
Please read more about the GTALUG Code of Conduct here:
<http://gtalug.org/about/code-of-conduct/>.
If you have any questions, comments, or concerns about the GTALUG Code of
Conduct please contact the GTALUG Board @ <bo...@gtalug.org>.
---
GTALUG Announce mailing list
annou...@gtalug.org
https://gtalug.org/mailman/listinfo/announce
---
Talk Mailing List
talk@gtalug.org
https://gtalug.org/mailman/listinfo/talk