The electric submersible pump, also known as ESP, is a highly effective artificial lift method widely used in the oil industry due to its ability to deliver higher production rates compared to other artificial lift methods. In principle, ESP is a multistage centrifugal pump that converts kinetic energy into dynamic hydraulic pressure necessary to lift fluids at a higher rate with lower bottomhole pressure, especially in oil wells under certain bottomhole condition fluid, and reservoir characteristics. However, several factors and challenges can complicate the completion and optimum development of ESP deployed wells, which need to be addressed to optimize its performance by maximizing efficiency and minimizing costs and uncertainties. To analyze the performance of ESP deployed wells, the objective function must include various factors associated with fluids, reservoir inflow and outflow characteristics, and pump parameters. In particular, the inflow and outflow parameters include well configuration, and types of completion string (e.g. tubing sizes, and download completion hardware) while reservoir and fluid parameters include pressure, temperature, and PVT properties. Pump parameters include gas vacuum fraction, electrical and mechanical constraints, power requirements, cable requirements, downhole conditions, etc. Despite these challenges, ESPs' importance and efficiency necessitate an in-depth understanding of its origins and evolution over time, as well as the difficulties encountered in the oil industry. This paper aims to provide a comprehensive review of ESP's origin and development, including all prior studies that have influenced optimum development. The literature review is divided into four main sections: experimental investigations, numerical simulation studies, mechanical modeling, and in-depth studies on production optimization. By providing an in-depth analysis of previous work in each area, this paper aims to contribute to ongoing efforts to enhance ESPs' performance and efficiency in the oil industry.