We show tight upper and lower bounds for time-space trade-offs for the c-approximate Near Neighbor Search problem. For the d-dimensional Euclidean space and npoint datasets, we develop a data structure with space n 1+ρu+o(1) + O(dn) and query time n ρq+o(1) + dn o(1) for every ρ u , ρ q ≥ 0 with:In particular, for the approximation c = 2 we get:• Space n 1.77... and query time n o(1) , significantly improving upon known data structures that support very fast queries [IM98, KOR00];• Space n 1.14... and query time n 0.14... , matching the optimal data-dependent Locality-Sensitive Hashing (LSH) from [AR15];• Space n 1+o(1) and query time n 0.43... , making significant progress in the regime of near-linear space, which is arguably of the most interest for prac-This is the first data structure that achieves sublinear query time and near-linear space for every approximation factor c > 1, improving upon [Kap15]. The data structure is a culmination of a long line of work on the problem for all space regimes; it builds on Spherical Locality-Sensitive Filtering [BDGL16] and datadependent hashing [AINR14, AR15]. Our matching lower bounds are of two types: conditional and unconditional. First, we prove tightness of the whole trade-off (0.1) in a restricted model of computation, which captures all known hashing-based approaches. We then show unconditional cell-probe lower * This paper merges two arXiv preprints: [Laa15c] (appeared online on November 24, 2015) and [ALRW16] (appeared online on May 9, 2016), and subsumes both of these articles. The full version containing all the proofs is available at https://arxiv.org/abs/1608.03580 bounds for one and two probes that match (0.1) for ρ q = 0, improving upon the best known lower bounds from [PTW10]. In particular, this is the first space lower bound (for any static data structure) for two probes which is not polynomially smaller than the one-probe bound. To show the result for two probes, we establish and exploit a connection to locally-decodable codes.