Flow scheduling techniques impose an important impact on the performance of the data center. Flow scheduling techniques aim at optimizing the user experience by controlling and scheduling the transmission link, priority and transmission rate of data flows. Flow scheduling techniques can achieve various optimization objects such as reducing the average or weighted flow completion time, decreasing the delay of long-tail flows, optimizing the transmission of flows with deadline constraints, improving the utilization of the network link. In this paper, we mainly review the recent research involving flow scheduling techniques. First, we briefly introduce data center and flow scheduling problem and challenges. These challenges mainly lie in the means to implement flow scheduling on network devices or terminal hosts, and how to design low-overhead highly-efficient scheduling algorithms. Especially, the coflow scheduling problem is proved NP-Hard to solve. Then, we review the latest progress of flow scheduling techniques from two aspects, i.e., single-flow scheduling and coflow scheduling. The divergence between single-flow scheduling techniques and coflow scheduling techniques is the flow relationship under different applications like Web search and big data analytics. In the end of the paper, we outlook the future development direction and point out some unsolved problems involving flow scheduling.