মনে রাখবেন যে আমি ল্যাট / লম্বা জোড়ায় গণনা করবো, কোন মাইএসকিউএল ডাটাবেসের সাথে ডেটাটাইপ সবচেয়ে উপযুক্ত?
মনে রাখবেন যে আমি ল্যাট / লম্বা জোড়ায় গণনা করবো, কোন মাইএসকিউএল ডাটাবেসের সাথে ডেটাটাইপ সবচেয়ে উপযুক্ত?
উত্তর:
জিআইএস এর সাথে মাইএসকিউএল এর স্থানিক এক্সটেনশনগুলি ব্যবহার করুন ।
গুগল গুগল ম্যাপের সাথে উদাহরণস্বরূপ "স্টোর লোকেটার" অ্যাপ্লিকেশনটির জন্য পিএইচপি / মাইএসকিউএল সমাধান শেষ করার জন্য একটি শুরু সরবরাহ করে। এই উদাহরণে, তারা "10,6" দৈর্ঘ্যের সাথে "ফ্লোট" হিসাবে ল্যাট / ল্যাংগ মানগুলি সংরক্ষণ করে
FLOAT(10,6)
স্থানাঙ্কের পূর্ণসংখ্যার অংশের জন্য 4 টি সংখ্যা রেখে যায়। এবং না, চিহ্নটি গণনা করা হয় না - এটি (আন) স্বাক্ষরিত গুণাবলী থেকে আসে।
Double
মূলত এটি আপনার অবস্থানগুলির জন্য আপনার প্রয়োজনীয় নির্ভুলতার উপর নির্ভর করে। ডাবল ব্যবহার করে আপনার একটি 3.5nm যথার্থতা পাওয়া যাবে। ডেসিমাল (8,6) / (9,6) 16 সেমিতে নেমে যায়। ফ্লাটটি 1.7 মি ...
অত্যন্ত আকর্ষণীয় এই টেবিলটিতে আরও একটি সম্পূর্ণ তালিকা রয়েছে: http://mysql.rjweb.org/doc.php/latlng :
Datatype Bytes Resolution
Deg*100 (SMALLINT) 4 1570 m 1.0 mi Cities
DECIMAL(4,2)/(5,2) 5 1570 m 1.0 mi Cities
SMALLINT scaled 4 682 m 0.4 mi Cities
Deg*10000 (MEDIUMINT) 6 16 m 52 ft Houses/Businesses
DECIMAL(6,4)/(7,4) 7 16 m 52 ft Houses/Businesses
MEDIUMINT scaled 6 2.7 m 8.8 ft
FLOAT 8 1.7 m 5.6 ft
DECIMAL(8,6)/(9,6) 9 16cm 1/2 ft Friends in a mall
Deg*10000000 (INT) 8 16mm 5/8 in Marbles
DOUBLE 16 3.5nm ... Fleas on a dog
আশাকরি এটা সাহায্য করবে.
মাইএসকিউএল এর স্পেশিয়াল এক্সটেনশানগুলি সেরা বিকল্প কারণ আপনার কাছে স্থানিক অপারেটর এবং সূচকগুলির সম্পূর্ণ তালিকা আপনার কাছে রয়েছে। একটি স্থানিক সূচক আপনাকে খুব দ্রুত দূরত্ব ভিত্তিক গণনা সম্পাদনের অনুমতি দেবে। দয়া করে মনে রাখবেন যে 6.0 হিসাবে, স্থানিক এক্সটেনশনটি এখনও অসম্পূর্ণ। আমি মাইএসকিউএল স্পেসিয়ালটি লিখছি না, কেবলমাত্র এই বিষয়ে আরও দূরে যাওয়ার আগেই আপনাকে সমস্যার কথা জানাই।
আপনি যদি পয়েন্টগুলি এবং কেবলমাত্র DISTANCE ফাংশন নিয়ে কঠোরভাবে আচরণ করছেন তবে এটি ঠিক আছে। যদি আপনার বহুভুজ, লাইন বা বাফার্ড-পয়েন্টগুলির সাথে কোনও গণনা করার দরকার হয়, তবে আপনি "সম্পর্কিত" অপারেটরটি ব্যবহার না করে স্পেসিয়াল অপারেটররা সঠিক ফলাফল সরবরাহ করে না। 21.5.6 এর শীর্ষে সতর্কতাটি দেখুন । অন্তর্ভুক্ত বা ছেদকৃত সম্পর্কগুলি এমবিআর ব্যবহার করছে, সঠিক জ্যামিতি আকার নয় (অর্থাত্ একটি উপবৃত্তটি একটি আয়তক্ষেত্রের মতো ধরা হয়)।
এছাড়াও, মাইএসকিউএল স্পেসিয়ালের দূরত্বগুলি আপনার প্রথম জ্যামিতির মতো একই ইউনিটে রয়েছে। এর অর্থ যদি আপনি দশমিক ডিগ্রি ব্যবহার করেন তবে আপনার দূরত্বের পরিমাপ দশমিক ডিগ্রিতে রয়েছে। নিরক্ষীয় অঞ্চল থেকে ফুর্থর পাওয়ার সাথে সাথে সঠিক ফলাফল পাওয়া খুব কঠিন করে তুলবে।
আমি যখন এআরআইএনসি ৪৪৪ থেকে তৈরি ন্যাভিগেশন ডেটাবেজের জন্য এটি করেছি তখন আমি কোডের দিকে তাকানোর জন্য যথেষ্ট পরিমাণে পরীক্ষা করে দেখেছি, আমি একটি ডেসিমাল (18,12) (আসলে একটি NUMERIC (18,12) ব্যবহার করেছি কারণ এটি ফায়ারবার্ড ছিল)।
ফ্লোট এবং ডাবল যথাযথ নয় এবং এর ফলে গোলাকার ত্রুটি হতে পারে যা খুব খারাপ জিনিস হতে পারে। আমি মনে করতে পারি না যে আমি কোনও সত্যিকারের ডেটা খুঁজে পেয়েছি যার মধ্যে সমস্যা ছিল - তবে আমি মোটামুটি নিশ্চিত যে কোনও ফ্লোট বা ডাবলে সঠিকভাবে সঞ্চয় করতে অক্ষমতা সমস্যার কারণ হতে পারে
মুল বক্তব্যটি হ'ল ডিগ্রি বা রেডিয়ান ব্যবহার করার সময় আমরা মানগুলির সীমাটি জানি - এবং ভগ্নাংশের অংশটি সর্বাধিক অঙ্কের প্রয়োজন।
মাইএসকিউএল স্থানিক এক্সটেনশানগুলি কারণ তারা অনুসরণ একটি ভাল বিকল্প আছে OpenGIS জ্যামিতি মডেল । আমি সেগুলি ব্যবহার করিনি কারণ আমার আমার ডাটাবেস পোর্টেবল রাখার প্রয়োজন ছিল।
a*b
ছিল যেখানে সমান ছিল না b*a
(কিছু মানের জন্য)। কিছুটা মত অনেক উদাহরণ ছিল: 2+2 = 3.9999
। স্ট্যান্ডার্ডটি প্রচুর জগাখিচুড়ি সাফ করে এবং কার্যত প্রতিটি হার্ডওয়ার এবং সফ্টওয়্যার দ্বারা 'দ্রুত' গৃহীত হয়। সুতরাং, এই আলোচনাটি কেবল ২০০৮ সাল থেকে নয়, একটি শতাব্দীর এক তৃতীয়াংশ ধরে বৈধ হয়েছে।
আপনার প্রয়োজনীয় নির্ভুলতার উপর নির্ভর করে।
Datatype Bytes resolution
------------------ ----- --------------------------------
Deg*100 (SMALLINT) 4 1570 m 1.0 mi Cities
DECIMAL(4,2)/(5,2) 5 1570 m 1.0 mi Cities
SMALLINT scaled 4 682 m 0.4 mi Cities
Deg*10000 (MEDIUMINT) 6 16 m 52 ft Houses/Businesses
DECIMAL(6,4)/(7,4) 7 16 m 52 ft Houses/Businesses
MEDIUMINT scaled 6 2.7 m 8.8 ft
FLOAT 8 1.7 m 5.6 ft
DECIMAL(8,6)/(9,6) 9 16cm 1/2 ft Friends in a mall
Deg*10000000 (INT) 8 16mm 5/8 in Marbles
DOUBLE 16 3.5nm ... Fleas on a dog
থেকে: http://mysql.rjweb.org/doc.php/latlng
সংক্ষেপ:
DOUBLE
।DECIMAL(8,6)/(9,6)
।মাইএসকিউএল ৫.7 হিসাবে স্থানিক ডেটা টাইপ (এসডিটি) ব্যবহার করে বিশেষত POINT
একটি একক স্থানাঙ্কের জন্য বিবেচনা করুন। ৫.7 এর আগে, এসডিটি সূচিগুলি সমর্থন করে না (যখন টেবিলের ধরণটি মাইআইএসএএম হয় তখন ৫..6 ব্যতীত)।
বিঃদ্রঃ:
POINT
বর্গ ব্যবহার করার সময়, স্থানাঙ্কগুলি সংরক্ষণ করার জন্য আর্গুমেন্টগুলির ক্রম অবশ্যই হবে POINT(latitude, longitude)
।ST_Distance
) এবং একটি বিন্দু অন্য অঞ্চলে রয়েছে কিনা তা নির্ধারণ করে ( ST_Contains
)।CREATE TABLE geom (g GEOMETRY NOT NULL, SPATIAL INDEX(g)) ENGINE=MyISAM;
এবং এসডিটি সীমাবদ্ধতা সম্পর্কে সতর্কতা যুক্ত করেন তবে জেমস উল্লেখ করেছেন , সম্ভবত আপনার উত্তরটি অন্য ব্যক্তিকেও সহায়তা করার ক্ষেত্রে আরও সংক্ষিপ্ত এবং যথাযথ হবে। ..
এই উইকির নিবন্ধের উপর ভিত্তি করে http://en.wikedia.org/wiki/Decimal_degrees#Acuracy মাইএসকিউএলে যথাযথ ডেটা টাইপ পৃথক ক্ষেত্রে দ্রাঘিমাংশ এবং অক্ষাংশ সংরক্ষণ করার জন্য দশমিক (9,6) হয়।
ব্যবহার করুন DECIMAL(8,6)
অক্ষাংশ (90 -90 ডিগ্রী) এবং DECIMAL(9,6)
দ্রাঘিমাংশ (180 -180 ডিগ্রী) জন্য। Dec দশমিক স্থান বেশিরভাগ অ্যাপ্লিকেশনের জন্য সূক্ষ্ম। নেতিবাচক মানগুলির জন্য উভয়কে "স্বাক্ষরিত" হওয়া উচিত।
DECIMAL
প্রকারটি আর্থিক গণনার জন্য উদ্দিষ্ট যেখানে কোনও floor/ceil
গ্রহণ করা হয় না। প্লেইন FLOAT
উল্লেখযোগ্যভাবে আউটফর্মফর্ম করে DECIMAL
।
গুগল ম্যাপের মতে খুব বেশি দূরে যাওয়ার দরকার নেই, লাত এবং এলএনজি-র জন্য সেরা (10,6) ফ্লাট।
lat FLOAT( 10, 6 ) NOT NULL,
lng FLOAT( 10, 6 ) NOT NULL
FLOAT
সিনট্যাক্সটি অবহিত করা হয়েছে mysql 8.0.17
। মাইএসকিএল এখন কেবল FLOAT
কোনও নির্ভুলতা পরামিতিগুলি ব্যবহার করার পরামর্শ দেয় dev.mysql.com/doc/refman/8.0/en/numeric-type-overview.html এবং dev.mysql.com/doc/refman/5.5/en/floating-Point- প্রকারের এইচটিএমএল
দ্বিগুণের সাথে গোলাকৃতির ত্রুটিগুলি এড়াতে আমরা অরক্ষিত / দ্রাঘিমাংশ এক্স 1000,000 আমাদের ওরাকল ডাটাবেজে NUMBERS হিসাবে সংরক্ষণ করি।
Lat ষ্ঠ দশমিক স্থানের জন্য অক্ষাংশ / দ্রাঘিমাংশ দেওয়া 10 সেমি যথার্থতা যা আমাদের কেবল প্রয়োজন all অন্যান্য অনেক ডাটাবেস 6 ম দশমিক স্থানে ল্যাট / লম্বা সঞ্চয় করে।
সম্পূর্ণ ভিন্ন এবং সরল দৃষ্টিকোণে:
VARCHAR
) হিসাবে অক্ষাংশ এবং দ্রাঘিমাংশ একসাথে সংরক্ষণ করেন ( যেমন: " -0000.0000001, -0000.00000000000000001 " (35 দৈর্ঘ্য এবং যদি কোনও সংখ্যায় 7 দশমিকের বেশি অঙ্ক থাকে তবে এটি বৃত্তাকার হয়ে যায়));google.maps.geometry.poly.containsLocation(latLng, bermudaTrianglePolygon))
এইভাবে আপনাকে নম্বরগুলি তালিকাবদ্ধ করা এবং ডেটা টাইপের সাথে সম্পর্কিত সমস্ত সমস্যা যা আপনার স্থানাঙ্কগুলি স্ক্রু করতে পারে সে সম্পর্কে চিন্তা করার দরকার নেই।
আপনার আবেদনের উপর নির্ভর করে, আমি ফ্লাট (9,6) ব্যবহার করার পরামর্শ দিচ্ছি
স্থানীয় কীগুলি আপনাকে আরও বৈশিষ্ট্য দেবে, তবে উত্পাদনের মাপদণ্ডে স্থানগুলি কীগুলির চেয়ে ভাসমানগুলি আরও দ্রুত। (এভিজিতে 0,01 ভিএস 0,001)
মাইএসকিউএল সমস্ত ফ্লোটের জন্য ডাবল ব্যবহার করে ... তাই ডাবল টাইপ ব্যবহার করুন। ভাসা ব্যবহার করা বেশিরভাগ পরিস্থিতিতে অপ্রত্যাশিত বৃত্তাকার মানগুলিতে নিয়ে যায়
DOUBLE
। মাইএসকিউএল আপনাকে 4-বাইট বা 8-বাইট হিসাবে ডেটা সঞ্চয় করতে দেয় । সুতরাং, কলামে কোনও অভিব্যক্তি সংরক্ষণ করার সময় নির্ভুলতার ক্ষতি হওয়ার সম্ভাবনা রয়েছে । FLOAT
DOUBLE
FLOAT
যদিও এটি সমস্ত ক্রিয়াকলাপের জন্য অনুকূল নয়, আপনি যদি মানচিত্রের টাইলস তৈরি করে থাকেন বা কেবলমাত্র একটি প্রজেকশন (উদাহরণস্বরূপ মার্কেটার, গুগল ম্যাপস এবং অন্যান্য অনেকগুলি স্লিপ ম্যাপ ফ্রেমওয়ার্কের প্রত্যাশা) নিয়ে বিপুল সংখ্যক চিহ্নিতকারী (বিন্দু) নিয়ে কাজ করছেন তবে আমি কী খুঁজে পেয়েছি? আমি "ভাস্ট কোর্ডিনেট সিস্টেম" কে সত্যই সত্যই কার্যকর বলে ডেকে আছি। মূলত, আপনি কোনওভাবে জুম-ইন-এ x এবং y পিক্সেল স্থানাঙ্কগুলি সঞ্চয় করেন - আমি জুম স্তর 23 ব্যবহার করি This এর বেশ কয়েকটি সুবিধা রয়েছে:
আমি সাম্প্রতিক একটি ব্লগ পোস্টে এই সমস্ত সম্পর্কে কথা বলেছি: http://blog.webfoot.com/2013/03/12/optimizing-map-tile-generation/
আমি কিছু উত্তর / মন্তব্য দ্বারা অত্যন্ত অবাক।
কেন পৃথিবীতে কেউ স্বেচ্ছায় নির্ভুলভাবে "প্রাক হ্রাস" করতে ইচ্ছুক হবে, এবং তারপরে আরও খারাপ সংখ্যায় গণনা সম্পাদন করবে? শেষ পর্যন্ত বোকা লাগছে।
যদি উত্সটিতে -৪-বিট যথার্থতা থাকে তবে অবশ্যই এটি স্বেচ্ছায় স্কেল ঠিক করে ফেলার জন্য বোবা হবে। 6 দশমিক দশক, এবং যথাযথতা সর্বাধিক 9 টি গুরুত্বপূর্ণ খনকের মধ্যে সীমাবদ্ধ করুন (যা সাধারণত প্রস্তাবিত দশমিক 9.6 ফর্ম্যাটের সাথে ঘটে)।
স্বাভাবিকভাবেই, উত্স উপাদানের যথাযথতার সাথে ডেটা সঞ্চয় করে। নির্ভুলতা হ্রাসের একমাত্র কারণ হ'ল সীমিত সঞ্চয় স্থান।
দশমিক 9.6-ফর্ম্যাটটি স্ন্যাপ-থেকে-গ্রিড ঘটনার কারণ করে। এটি হ'ল একেবারে শেষ পদক্ষেপ হওয়া উচিত।
আমি আমার বাসাতে জমা ত্রুটিগুলিকে আমন্ত্রণ করব না।
টি এল; ডিআর
ফ্লাট (8,5) ব্যবহার করুন যদি আপনি নাসা / সামরিক বাহিনীতে কাজ না করে এবং এয়ারক্র্যাফ্ট নাভি সিস্টেম তৈরি না করেন।
আপনার প্রশ্নের পুরো উত্তর দেওয়ার জন্য আপনাকে কয়েকটি বিষয় বিবেচনা করতে হবে:
বিন্যাস
সুতরাং উত্তরের প্রথম অংশটি হ'ল - আপনি স্থির রূপান্তরগুলি এড়াতে এবং পিছনে পিছনে এড়াতে আপনার অ্যাপ্লিকেশন যে বিন্যাসটি ব্যবহার করে সেগুলিতে স্থানাঙ্কগুলি সংরক্ষণ করতে পারেন এবং সহজ এসকিউএল অনুসন্ধান করতে পারেন।
সম্ভবত আপনি নিজের ডেটা প্রদর্শন করতে গুগল ম্যাপস বা ওএসএম ব্যবহার করেন এবং জিএমএপস "দশমিক ডিগ্রি 2" ফর্ম্যাট ব্যবহার করছেন। সুতরাং একই ফর্ম্যাটে স্থানাঙ্কগুলি সংরক্ষণ করা আরও সহজ হবে।
স্পষ্টতা
তারপরে, আপনি আপনার প্রয়োজনীয় নির্ভুলতার সংজ্ঞা দিতে চাই। অবশ্যই আপনি "-32.608697550570334,21.278081997935146" এর মতো স্থানাঙ্কগুলি সঞ্চয় করতে পারেন, তবে আপনি কি কখনও পয়েন্টটিতে নেভিগেশন করার সময় মিলিমিটারের যত্ন নিয়েছেন? আপনি যদি নাসায় কাজ করছেন না এবং উপগ্রহ বা রকেট বা প্লেনের ট্র্যাজেক্টরিগুলি না করে থাকেন, তবে বেশ কয়েকটি মিটার যথার্থতার সাথে আপনার ভাল হওয়া উচিত।
সাধারণত ব্যবহৃত ফর্ম্যাটটি বিন্দুর পরে 5 ডিজিট যা আপনাকে 50 সেমি যথার্থতা দেয়।
উদাহরণ : এক্স, 21.278081 8 এবং এক্স, 21.278081 9 এর মধ্যে 1 সেমি দূরত্ব রয়েছে । সুতরাং বিন্দুর পরে digit টি অঙ্ক আপনাকে 1/2 সেমি যথার্থতা দেবে এবং বিন্দুর পরে 5 অঙ্কগুলি আপনাকে 1/2 মিটার নির্ভুলতা দেবে (কারণ স্বতন্ত্র পয়েন্টগুলির মধ্যে ন্যূনতম দূরত্ব 1 মি, সুতরাং গোলাকার ত্রুটি এটি অর্ধেকের বেশি হতে পারে না)। বেশিরভাগ নাগরিক উদ্দেশ্যে এটি পর্যাপ্ত হওয়া উচিত।
ডিগ্রি দশমিক মিনিটের ফর্ম্যাট (40 ° 26.767 ′ N 79 ° 58.933 ′ W) আপনাকে বিন্দুর পরে 5 সংখ্যার মতো হুবহু নির্ভুলতা দেয়
স্থান-দক্ষ স্টোরেজ
আপনি যদি দশমিক বিন্যাস নির্বাচন করেছেন, তবে আপনার স্থানাঙ্কটি একটি জুটি (-32.60875, 21.27812)। স্পষ্টতই, 2 এক্স (চিহ্নের জন্য 1 বিট, ডিগ্রির জন্য 2 অঙ্ক এবং খাঁজকারীর জন্য 5 অঙ্ক) যথেষ্ট হবে।
সুতরাং এখানে আমি মন্তব্য থেকে অ্যালিক্স অ্যাক্সেলকে সমর্থন করে বলতে চাই যে এটি গুগল (10,6) এ সঞ্চয় করার জন্য গুগলের পরামর্শটি অতিরিক্ত অতিরিক্ত, কারণ আপনার মূল অংশের জন্য 4 সংখ্যার প্রয়োজন নেই (যেহেতু চিহ্নটি পৃথক করা হয়েছে এবং অক্ষাংশ সীমাবদ্ধ রয়েছে) 90 এবং দ্রাঘিমাংশ 180 এর মধ্যে সীমাবদ্ধ)। আপনি সহজেই 1/2 মিটার নির্ভুলতার জন্য ফ্লোট (8,5) অথবা 50/2 সেমি নির্ভুলতার জন্য ফ্লোট (9,6) ব্যবহার করতে পারেন। অথবা আপনি এমনকি পৃথক প্রকারে ল্যাট এবং দীর্ঘ সংরক্ষণ করতে পারেন, কারণ ফ্লাট (7,5) ল্যাট জন্য যথেষ্ট। মাইএসকিউএল ফ্লোট প্রকারের রেফারেন্স দেখুন । এগুলির যে কোনও একটিই স্বাভাবিক ফ্লাটের মতো এবং যাইহোক 4 বাইটের সমান হবে।
সাধারণত স্থান আজকাল কোনও সমস্যা নয় তবে আপনি যদি কোনও কারণে স্টোরেজটিকে সত্যিই অনুকূল করতে চান (দাবি অস্বীকার: প্রাক-অপ্টিমাইজেশন করবেন না), আপনি ল্যাট সংক্ষেপিত করতে পারেন (91 000 মানের চেয়ে বেশি নয়) + দীর্ঘ (না 21 টি বিট যা 18x000 এর বেশি মান + সাইন ইন) 2xFLOAT (8 বাইট == 64 বিট) এর চেয়ে উল্লেখযোগ্যভাবে কম
পোস্টজিআইএস-এর স্পেসিয়াল ফাংশনগুলি মাইএসকিউএল স্থানিক ক্রিয়াকলাপগুলির চেয়ে অনেক বেশি কার্যকরী (যেমন বিবিওএক্স অপারেশনগুলিতে সীমাবদ্ধ নয়)। এটি পরীক্ষা করে দেখুন: লিঙ্ক পাঠ্য
অক্ষাংশের সীমা -90 থেকে +90 (ডিগ্রি) অবধি, সুতরাং ডেসিমাল (10, 8) এর জন্য ঠিক আছে
দ্রাঘিমাংশ -180 থেকে +180 (ডিগ্রি) পর্যন্ত বিস্তৃত সুতরাং আপনার ডেসিমাল (11, 8) প্রয়োজন।
দ্রষ্টব্য: প্রথম সংখ্যাটি সঞ্চিত অঙ্কের মোট সংখ্যা এবং দ্বিতীয়টি দশমিক বিন্দুর পরে সংখ্যা।
সংক্ষেপে: lat DECIMAL(10, 8) NOT NULL, lng DECIMAL(11, 8) NOT NULL
আমি আপনাকে এসকিউএল সার্ভারের জন্য ফ্লোট ডেটাটাইপ ব্যবহার করার পরামর্শ দিচ্ছি।
ল্যাট লং গণনার জন্য যথাযথতা প্রয়োজন, সুতরাং কিছু ধরণের দশমিক প্রকার ব্যবহার করুন এবং গণিতের গণনা সম্পাদনের জন্য আপনি যে সংখ্যার সংরক্ষণ করবেন তার চেয়ে কমপক্ষে 2 টি উচ্চতর করুন। আমি আমার এসকিউএল ডেটাটাইপগুলি সম্পর্কে জানি না তবে এসকিউএল সার্ভারে লোকেরা প্রায়শই দশমিকের পরিবর্তে ফ্লোট বা রিয়েল ব্যবহার করে এবং সমস্যায় পড়েন কারণ এগুলি আনুমানিক সংখ্যার হিসাবে আসল নয়। সুতরাং কেবল নিশ্চিত হয়ে নিন যে আপনি যে ডেটা ব্যবহার করেন সেটি সত্য দশমিক প্রকার এবং কোনও ভাসমান দশমিক প্রকার নয় এবং আপনার ভাল হওয়া উচিত।
এ FLOAT
আপনাকে প্রয়োজনীয় সমস্ত নির্ভুলতা দিতে হবে এবং প্রতিটি সমন্বয়কে স্ট্রিং বা এর মতো সংরক্ষণের চেয়ে তুলনা ফাংশনগুলির জন্য ভাল হওয়া উচিত।
যদি আপনার মাইএসকিউএল সংস্করণটি 5.0.3 এরও বেশি হয় তবে আপনাকে অবশ্যই কিছু ভাসমান পয়েন্ট তুলনা ত্রুটি সম্পর্কে খেয়াল রাখতে হবে ।
মাইএসকিউএল 5.0.3 এর আগে, ডেসিমাল কলামগুলি যথার্থতার সাথে মানগুলি সঞ্চয় করে কারণ সেগুলি স্ট্রিং হিসাবে উপস্থাপিত হয়, তবে ডেসিমাল মানগুলিতে গণনাগুলি ভাসমান-পয়েন্ট অপারেশনগুলি ব্যবহার করে করা হয় using ৫.০.৩ অনুসারে, মাইএসকিউএল dec৪ দশমিক অঙ্কের নির্ভুলতা সহ ডেসিমাল অপারেশন সম্পাদন করে, যা ডেসিমাল কলামগুলির ক্ষেত্রে আসে যখন সবচেয়ে সাধারণ অনর্থক সমস্যার সমাধান করা উচিত
DECIMAL
ভাসমান বাস্তবায়ন ব্যবহারের কারণে (5.0.3 এর আগে) কিছু ত্রুটি ঘটেছে তা নির্দেশ করছে ।