Well, first off you can check the properties of the statevector simulator and the qasm simulator by doing the following:
from qiskit.providers.aer import StatevectorSimulator, QasmSimulator
StatevectorSimulator.DEFAULT_CONFIGURATION
QasmSimulator.DEFAULT_CONFIGURATION
From the outputs of these calls, you can see that both simulator backends have the same default number of maximum qubits and maximum number of shots. Also, they both accept circuits with all gates, not just the basis gates.
The reason why using the statevector simulator will take longer and then eventually run out of memory as you increase the number of qubits is because the statevector simulator has to return a block of data the size of 2^N (where N is the number of qubits, and 2^N is the size of the statevector). As the number of qubits increases, the size of the statevector increases exponentially. On the other hand, the qasm simulator returns counts, which is a sampling of the statevector of the circuit, way smaller in size and won't increase in size exponentially as the number of qubits increases. Though they return different things, the qasm and statevector simulator are both part of the same simulator.
You can also customize the qasm simulator to act like the statevector simulator by adding the parameter backend_options to your call to execute() or run() your circuit with the value backend_options = {"method": "statevector"}, and the qasm simulator will return a statevector.