मैं अपने MySQL डेटाबेस में कुछ ज्यामितीय पदों को संग्रहीत करना चाहता हूं। इसके लिए मैं POINT डेटाटाइप का उपयोग करता हूं। लगभग हर जगह मैंने पढ़ा कि फ़ंक्शन GeomFromText
का उपयोग तालिका में डेटा डालने के लिए किया जाना चाहिए।
हालांकि, मुझे पता चला कि POINT(X,Y)
यह भी काम करता है। मुझे ऐसा कोई विवरण नहीं मिला जिसके GeomFromText
बजाय इसका उपयोग क्यों किया जाए POINT
।
उदाहरण के लिए मेरे पास निम्नलिखित सरल संबंध हैं:
CREATE TABLE Site (
SiteID BIGINT UNSIGNED,
Position POINT
);
और मैं निम्नलिखित दो वेरिएंट का उपयोग करके मान सम्मिलित कर सकता हूं:
INSERT INTO Site (
1,
GeomFromText( 'POINT(48.19976 16.45572)' )
);
INSERT INTO Site (
2,
POINT(48.19976, 16.45572)
);
जब मैं तालिका SELECT * FROM Site
देखता हूं ( ) मैं स्थान के लिए एक ही बाइनरी बूँद देखता हूं, और जब मैं निर्देशांक SELECT *, AsText(Position) FROM Site
देखता हूं (तो ) मैं भी समान मान देखता हूं।
तो GeomFromText का उपयोग क्यों किया जाना चाहिए? क्या इन दोनों वेरिएंट के बीच कोई (ज्ञात) प्रदर्शन अंतर है? यह MySQL के अलावा अन्य डेटाबेस सिस्टम में कैसे हल किया जाता है?
INSERT INTO Site (Position) SELECT POINT(latitude, longitude) FROM tmp
से ज्यादा सरल है...SELECT GeomFromText(CONCAT('POINT(',latitude,' ',longitude,')' )) ...