SQLite - 用户定义的函数,用于处理关系数据

时间:2012-02-06 10:33:40

标签: sql sqlite optimization user-defined-functions

SQLite数据库我正在处理名为多边形的商店,每个都由一些点组成,这些表是“多边形”(id,name)和“points”(x,y,polygon_id)。 现在,给定一个点坐标,我需要查询与该点相交的所有多边形。 我目前的解决方案(见下文)非常慢,请帮助我优化

$dbh->sqliteCreateFunction('mgPoint', 'sqlite_point', 2);
function sqlite_point($sid, $pt){
    $points = query("SELECT x,y FROM points WHERE polygon_id = $sid")->all();
    return is_point_in_polygon($pt, $points);
}
//... and the usage ...
query("SELECT * FROM polygon s WHERE mgPoint(s.id, :p)", array('p' => $pt));

0 个答案:

没有答案