We consider languages expressed by word equations in two variables and give a completecharacterization for their complexity functions, that is, the functions that give the number ofwords of the same length. Specifically, we prove that there are only five types of complexities:constant, linear, exponential, and two in between constant and linear. For the latter two, wegive precise characterizations in terms of the number of solutions of Diophantine equations ofcertain types. In particular, we show that the linear upper bound on the non-exponentialcomplexities by Karhumäki et al. in [9], is tight. There are several consequences of our study.First, we derive that both of the sets of all finite Sturmian words and of all finite Standardwords are expressible by word equations. Second, we characterize the languages of non-exponentialcomplexity which are expressible by two-variable word equations as finite unions of severalsimple parametric formulae and solutions of a two-variable word equation with a finite graph.Third, we find optimal upper bounds on the solutions of (solvable) two-variable word equations,namely, linear bound for one variable and quadratric for the other. From this, we obtain an $\mathcal{O}(n^6)$
algorithm for testing the solvability of two-variable word equations, improving thus verymuch Charatonik and Pacholski's $\mathcal{O}(n^100)$
algorithm from [3].