aplbrain / grand

Your favorite Python graph libraries, scalable and interoperable. Graph databases in memory, and familiar graph APIs for cloud databases.
Apache License 2.0
80 stars 6 forks source link

Improve SQLBackend degree performance #25

Closed j6k4m8 closed 2 years ago

j6k4m8 commented 2 years ago

Can use something akin to:

out_degree

SELECT 
    source,
    COUNT(DISTINCT source) as source_count
FROM {G.backend._edge_table_name}
GROUP BY
    source

degree (undirected)

SELECT 
    vert, COUNT(DISTINCT vert) as vert_count 
FROM 
    (
        SELECT source as vert FROM {G.backend._edge_table_name} 
        UNION ALL
        SELECT target FROM {G.backend._edge_table_name}
    )
GROUP BY vert