public function insert($table, array $data, array $types = [])
    {
        return $this->getDisconnectRetry()->run(function () use ($table, $data, $types) {
            $columns = array_keys($data);

            return $this->newQuery()->insert($columns, $types)
                ->into($table)
                ->values($data)
                ->execute();
        });
    }