Database systems contain a vast number of configuration parameters controlling nearly all aspects of runtime operation. Different parameter settings may lead to different performance values. Parameter tuning can improve the adaptability of database to current environment by selecting appropriate parameter settings. However, parameter tuning faces several challenges. The first challenge is the complexity of parameter space, while the second is the insufficient samples caused by the expensive performance measurements. Moreover, the optimal parameter configuration is not universal when the environment changes. Therefore, regular users and even expert administrators grapple with understanding and tuning configuration parameters to achieve good performance. We summarize and analyze the existing work on parameter tuning for database systems and classify them into two categories: tuning approaches under fixed environments and tuning approaches under changed enviroments, according to whether the approaches have the ability to cope with environmental changes. For the first one, the research work is divided into traditional parameter tuning and machine learning-based parameter tuning according to whether the approaches can learn from historical tasks. For the second one, the existing approaches are introduced according to different environmental change scenarios, respectively. Finally, we summarize the pros and cons of various approaches and discuss some open research problems for parameter tuning.