  We give new algorithms based on Markov chains to sample and approximately
count satisfying assignments to $k$-uniform CNF formulas where each variable
appears at most $d$ times. For any $k$ and $d$ satisfying $kd<n^{o(1)}$ and
$k\ge 20\log k + 20\log d + 60$, the new sampling algorithm runs in close to
linear time, and the counting algorithm runs in close to quadratic time.
  Our approach is inspired by Moitra (JACM, 2019) which remarkably utilizes the
Lov\'{a}sz local lemma in approximate counting. Our main technical contribution
is to use the local lemma to bypass the connectivity barrier in traditional
Markov chain approaches, which makes the well developed MCMC method applicable
on disconnected state spaces such as SAT solutions. The benefit of our approach
is to avoid the enumeration of local structures and obtain fixed polynomial
running times, even if $k=\omega(1)$ or $d=\omega(1)$.
