**Describe the situation**

When using parameters (`param`) in the CLI or with the HTTP interface, the EmbeddedRocksDB engine will scan through all the data causing significant slowdown, instead of doing a proper RocksDB key lookup.

**How to reproduce**

setup.sql:
```sql
CREATE TABLE test1 (key String, value String) ENGINE=EmbeddedRocksDB PRIMARY KEY key;

-- do this a few times to exacerbate the issue
INSERT INTO test1 (*) SELECT n.number, randomString(10000) FROM numbers(10000) n;
INSERT INTO test1 (*) SELECT n.number, randomString(10000) FROM numbers(10000) n;
INSERT INTO test1 (*) SELECT n.number, randomString(10000) FROM numbers(10000) n;
```

```
❯ clickhouse client "--param_key=5000" --query "SELECT value FROM test1 WHERE key = {key:String} FORMAT JSON" | jq ".statistics"
{
  "elapsed": 0.20763,
  "rows_read": 10000,
  "bytes_read": 100218890
}

❯ clickhouse client --query "SELECT value FROM test1 WHERE key = '5000' FORMAT JSON" | jq ".statistics"
{
  "elapsed": 0.000519,
  "rows_read": 1,
  "bytes_read": 10022
}
```

**Version**
22.6.1.231


}
        else if (statuses[i].IsNotFound())
        {
            if (null_map)
            {
                (*null_map)[i] = 0;
                for (size_t col_idx = 0; col_idx < sample_block.columns(); ++col_idx)
                {
                    columns[col_idx]->insert(sample_block.getByPosition(col_idx).type->getDefault());
                }
            }
        }
        else
        {
            throw DB::Exception(ErrorCodes::ROCKSDB_ERROR, "rocksdb error {}", statuses[i].ToString());
        }
    }
    size_t num_rows = columns.at(0)->size();
    return Chunk(std::move(columns), num_rows);
}
void registerStorageEmbeddedRocksDB(StorageFactory & factory)
{
    StorageFactory::StorageFeatures features{
        .supports_sort_order = true,
        .supports_parallel_insert = true,
    };
    factory.registerStorage("EmbeddedRocksDB", create, features);
}
}