Flash translation layer (FTL) is one of the key techniques in solid state drive (SSD) design. Currently, demand-based FTL (DFTL) is a well-known FTL algorithm which can dynamically load map entries into cache based on the characteristics of requests. However, it does not consider the spatial locality of workloads, and one map entry evict out operation in cache may update one translation page; thus, frequent evict out operations will cause extra erase operations. Focusing on above drawbacks of DFTL, this paper proposes an FTL scheme called SDFTL (sequential/second cache DFTL), which sets a sequential cache and a second level cache additionally. The former improves the performance of FTL handling the workloads with high spatial locality by prefetching map entries to exploit the spatial locality of workloads. The latter is used to buffer the updated map entries, which are evicted from first level cache, to take advantage of batch updating strategy, and thus reduces the translation page write counts and erase counts. Experimental results of various realistic workloads show that SDFTL can improve the cache hit ratio by 41.57% and reduce the erase counts by 23.08% and response time by 17.74% compared with those of DFTL in average.