With recent advances in machine learning driven by large internet companies together with advances in hardware, most database companies companies have begun to adopt machine learning techniques. One angle is from an application point of view towards analyzing user data in order to optimize business. The other is to use machine learning within the database towards managing and optimizing the database system itself.

This presentation is about using machine learning to improve database query optimization. The query optimizer is a critical component in a database system that exists to get optimal performance to return results to queries. Fast and stable query response time requirements are become critical with increasingly complex queries on increasingly large databases and needs to be done with minimum manual tuning. There are many aspects of query optimization that can benefit from using machine learning. In particular, we focus on one important aspect critical to coming up with an optimal query execution plans, namely to estimate cardinalities (the number of rows through various operations in a query execution plan).