Developing systems that work with databases seems to be an easy job, until you deploy on production. “Why is my query not working like on dev/test?” The answer is usually – “because of the difference in the volume of data between those systems”. It is easy to write a query that will run fast on a small dataset. Larger datasets are a whole other beast. To paraphrase it – “More data implies more responsibility”. In those situations it becomes essential to know how the query planner works to be able to use its full potential. But the documentation does not cover this part very well, especially the part how the planner makes estimations on the number of rows when sub-queries or variables are involved. Some information can be found in presentations held at PG conferences, but for the rest you have to read the “documentation” (code).
- Mladen Marinović – Working at Bull Croatia for the past 5 years on payment systems, customs software and integration with complex systems. Mostly in Java and PHP. In my spare time I use python for relaxing, working on computer based psychological testing and bioinformatics.
- Darko Doko – Working as software engineer at Bull. Mostly in C, developing EFTPOS applications; and in Java working on payment authorization. Software testing and Free software enthusiast.