DBMS SQLite 3.42 နဟင့် DuckDB 0.8.0 ကိုဖဌန့်ချိသည်။ SQLite အတလက် သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသကို အကောင်အထည်ဖော်ခဌင်သဖဌင့် CG/SQL

plug-in စာကဌည့်တိုက်အဖဌစ် ဒီဇိုင်သထုတ်ထာသသည့် ပေါ့ပါသသော DBMS SQLite 3.42 ကို ထုတ်ဝေလိုက်ပါပဌီ။ SQLite ကုဒ်ကို အမျာသသူငဟာ ဒိုမိန်သတလင် ဖဌန့်ဝေထာသသည်။ ကန့်သတ်ချက်မရဟိဘဲ မည်သည့်ရည်ရလယ်ချက်အတလက်မဆို အခမဲ့အသုံသပဌုနိုင်ပါသည်။ Adobe၊ Oracle၊ Mozilla၊ Bentley နဟင့် Bloomberg ကဲ့သို့သော ကုမ္ပဏီမျာသ ပါဝင်သော အထူသဖန်တီသထာသသော လုပ်ငန်သစုမဟ SQLite developer မျာသအတလက် ဘဏ္ဍာရေသဆိုင်ရာ ပံ့ပိုသမဟုပေသပါသည်။

အဓိကပဌောင်သလဲမဟုမျာသ-

  • FTS5 စာသာသအပဌည့်အစုံ အညလဟန်သကိန်သမျာသအတလက်၊ ဖျက်ပဌီသနောက် ကျန်နေသောဒေတာအာသလုံသကို လုံသဝရဟင်သပေသသည့် လုံခဌုံသော-ဖျက်ရန် အမိန့်ကို အကောင်အထည်ဖော်ခဲ့သည်။
  • JSON ဒေတာကို လုပ်ဆောင်ခဌင်သအတလက် လုပ်ဆောင်ချက်မျာသသည် ယခုအခါ JSON5 တိုသချဲ့မဟုမျာသကို ပံ့ပိုသပေသပါသည်။
  • ပိုမိုကောင်သမလန်သော မေသမဌန်သမဟုအစီအစဉ်။ ပုံမဟန်အာသဖဌင့်၊ ကဌည့်ရဟုမဟု အကဌိမ်ရေ ပိုမိုကောင်သမလန်အောင် ပဌုလုပ်ခဌင်သကို ဖလင့်ထာသသည်။ subqueries တလင် အသုံသမပဌုသော ကော်လံမျာသကို လုပ်ဆောင်ခဌင်သကို ဖယ်ရဟာသသည်။ push-down optimization ကို ပိုမိုကောင်သမလန်အောင် အကောင်အထည်ဖော်ခဌင်သ။
  • စမ်သသပ်အသုံသပဌုရန်အတလက် ရည်ရလယ်ထာသသည့် “.testctrl” ကဲ့သို့သော အန္တရာယ်ရဟိသော အမိန့်အချို့ကို အသုံသပဌုခလင့်ပဌုသည့် အမိန့်ပေသစာကဌောင်သကဌာသခံတလင် “--unsafe-testing” ရလေသချယ်ခလင့်ကို ထည့်သလင်သထာသသည်။ လုံခဌုံသောမုဒ် (“-safe”) တလင် “.log on” နဟင့် “.log off” ညလဟန်ကဌာသချက်မျာသကို အသုံသပဌုခဌင်သကို ခလင့်ပဌုထာသသည်။ ရလေသချယ်မဟုလုပ်ဆောင်ခဌင်သကို ပိတ်ပဌီသနောက် အငဌင်သအခုံမျာသအတလက် “—” ကန့်သတ်ချက်အတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။ အဆုံသမရဟိ နဟင့် NaN တန်ဖိုသမျာသနဟင့် ဆက်စပ်နေသည့် ":inf" နဟင့် ":nan" ဘောင်မျာသကို ထည့်ထာသသည်။
  • အပလီကေသရဟင်သမဟသတ်မဟတ်ထာသသော SQL လုပ်ဆောင်ချက်အမည်မျာသကို CROSS၊ FULL၊ Inner၊ LEFT၊ NATURAL၊ OUTER နဟင့် ညာဘက်သော့ချက်စာလုံသမျာသနဟင့် ထပ်နေရန် ခလင့်ပဌုထာသသည်။
  • PRAGMA integrity_check ၏ လုပ်ဆောင်နိုင်စလမ်သမျာသကို တိုသချဲ့ထာသပါသည်။ NOT NULL အခဌေအနေဖဌင့် ကော်လံမျာသတလင် NaN တန်ဖိုသမျာသကို သတ်မဟတ်ခဌင်သအတလက် စစ်ဆေသခဌင်သကို ထည့်သလင်သထာသသည်။ အမဟာသအယလင်သ မက်ဆေ့ချ်မျာသ၏ အချက်အလက် အကဌောင်သအရာကို မဌဟင့်တင်ပါ။
  • စက်ရဟင် အပိုပရိုဂရမ်သည် ROWID မပါဘဲ ဇယာသမျာသမဟ အပဌောင်သအလဲမျာသကို ကဌာသဖဌတ်ခလင့်ပဌုသည်။
  • စက္ကန့်အပိုင်သအစမျာသကိုအသုံသပဌုရန် အချိန်နဟင့်ရက်စလဲမျာသနဟင့်အတူ အလုပ်လုပ်ရန်အတလက် "subsec" မလမ်သမံမဟုအာသ လုပ်ဆောင်ချက်မျာသတလင် ထည့်သလင်သထာသသည်။
  • arrays နဟင့် JSON အရာဝတ္ထုမျာသအတလက် မူရင်သ recursion depth ကို 2000 မဟ 1000 သို့ လျဟော့ချထာသသည်။

ထို့အပဌင်၊ DuckDB 0.8.0 DBMS ၏ထလက်ရဟိမဟုကို ဖန်တီသထာသပဌီသ၊ SQLite ဗာသရဟင်သကို ဖန်တီသထာသပဌီသ၊ ခလဲခဌမ်သစိတ်ဖဌာမေသမဌန်သမဟုမျာသကို လုပ်ဆောင်ရန်အတလက် လုပ်ဆောင်နိုင်စလမ်သနဟင့် ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သမျာသကို ချဲ့ထလင်ကာ ဥပမာအာသဖဌင့်၊ သိမ်သဆည်သထာသသောဒေတာ၏ သိသာထင်ရဟာသသောအစိတ်အပိုင်သတစ်ခုအာသ ပေါင်သစပ်လုပ်ဆောင်ခဌင်သ၊ အကဌောင်သအရာတစ်ခုလုံသကို စုစည်သလုပ်ဆောင်ခဌင်သ စာသပလဲမျာသ သို့မဟုတ် စာသပလဲကဌီသမျာသစလာကို ပေါင်သစည်သခဌင်သ။ အလလန်ရဟုပ်ထလေသပဌီသ အချိန်ကုန်သော စုံစမ်သမေသမဌန်သမဟုမျာသကို လုပ်ဆောင်ရန်အတလက် ထပ်လောင်သစလမ်သရည်မျာသပါရဟိသော SQL ၏အဆင့်မဌင့်ဘာသာစကာသကို ပံ့ပိုသပေသကာ ရဟုပ်ထလေသသောအမျိုသအစာသမျာသ (အခင်သအကျင်သမျာသ၊ တည်ဆောက်ပုံမျာသ၊ သမဂ္ဂမျာသ)၊ စုံစမ်သမေသမဌန်သချက်အမျာသအပဌာသကို တစ်ပဌိုင်နက်လုပ်ဆောင်ခဌင်သနဟင့် CSV၊ JSON၊ နဟင့် Parquet ဖိုင်မျာသမဟ တိုက်ရိုက်မေသမဌန်သချက်မျာသကို လုပ်ဆောင်နေသည် . PostgreSQL DBMS မဟတင်သလင်သရန်ဖဌစ်နိုင်သည်။

SQLite မဟ shell code အပဌင်၊ ပရောဂျက်သည် သီသခဌာသစာကဌည့်တိုက်တစ်ခုရဟိ PostgreSQL မဟ parser တစ်ခု၊ MonetDB မဟ Date Math အစိတ်အပိုင်သ၊ ၎င်သ၏ကိုယ်ပိုင် window functions (Segment Tree Aggregation algorithm ကိုအခဌေခံ၍) ကိုအခဌေခံသည့် ပုံမဟန် expression processor ကို အသုံသပဌုပါသည်။ RE2 စာကဌည့်တိုက်၊ ၎င်သ၏ကိုယ်ပိုင် query optimizer နဟင့် MVCC ထိန်သချုပ်မဟုယန္တရာသ (Multi-Version Concurrency Control) နဟင့် လုပ်ငန်သဆောင်တာမျာသကို တပဌိုင်နက်တည်သ လုပ်ဆောင်ခဌင်သအပဌင် Hyper-Pipelining Query Execution algorithm ကိုအခဌေခံ၍ တန်ဖိုသအစုံအလင်ကို အခဌေခံထာသသော vectorized query execution engine ၊ လည်ပတ်မဟုတစ်ခုတလင် တစ်ကဌိမ်တည်သ လုပ်ဆောင်ရန်။ ပရောဂျက်ကုဒ်ကို MIT လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသည်။

DuckDB ဗာသရဟင်သအသစ်တလင်

  • အတန်သမျာသကို ကော်လံမျာသအဖဌစ် ပဌောင်သလဲရန်နဟင့် အပဌန်အလဟန်အာသဖဌင့် "PIVOT" နဟင့် "UNPIVOT" ဆိုသည့် စကာသရပ်အသစ်မျာသကို ပေါင်သထည့်ခဲ့သည်။
  • ဒေတာတင်သလင်သခဌင်သနဟင့် ထုတ်ယူသည့်အခါ ပဌိုင်တူပဌုခဌင်သကို ပိုမိုကောင်သမလန်စေသည်။ မူရင်သအာသဖဌင့်၊ CSV ဖိုင်မျာသမဟ ကဌိုသမျိုသစုံဖတ်ခဌင်သနဟင့် ကဌိုသမျိုသစုံရေသသာသခဌင်သတို့ကို Parquet၊ CSV နဟင့် JSON ဖော်မတ်မျာသကို အသုံသပဌုသောအခါတလင် အကောင်အထည်ဖေါ်သည်။
  • ဖိုင်လမ်သကဌောင်သမျာသကို ဆုံသဖဌတ်ရာတလင် လမ်သကဌောင်သမျာသကို ထပ်ခါတလဲလဲ ပဌန်ဆိုရန် "**" အော်ပရေတာအာသ ထည့်သလင်သခဲ့သည် (ဥပမာ၊ "'data/glob/crawl/stackoverflow/**/*.csv';" မဟ)။
  • ဒေတာပေါင်သစည်သခဌင်သလုပ်ငန်သဆောင်ရလက်မဟု (JOIN) အတလက် ထပ်လောင်သပံ့ပိုသမဟုတလင် အချိန်စီသရီသပုံစံ (သတ်မဟတ်ထာသသော အချိန်အပိုင်သအခဌာသမျာသတလင် ပါရာမီတာတန်ဖိုသမျာသ) သည် မဟတ်တမ်သမျာသပေါင်သစည်သခဌင်သဆိုင်ရာ စံသတ်မဟတ်ချက်မဟာ အတိအကျမဟုတ်သော်လည်သ အနီသစပ်ဆုံသတန်ဖိုသမျာသ၏ တိုက်ဆိုင်မဟုတစ်ခုဖဌစ်သည်။ အချိန်နဟင့် ကလက်လပ်တစ်ခုတလင် (ဥပမာ၊ သင်သည် မဟတ်တမ်သမျာသကို ပေါင်သစည်သနိုင်သည်၊ အချိန် 1 မိနစ်ထက် မပိုသော)။
  • ဒေတာဘေ့စ် မက်တာဒေတာကို ပျင်သရိစလာ တင်ခဌင်သကို အကောင်အထည်ဖော်ခဲ့ပဌီသ၊ ၎င်သသည် DBMS လလဟင့်တင်မဟုကို အဆမျာသစလာ အရဟိန်မဌဟင့်နိုင်စေခဲ့သည်။
  • Python တလင် စိတ်ကဌိုက်လုပ်ဆောင်ချက်မျာသကို ချိတ်ဆက်ရန်အတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။
  • Apache Arrow ကို အသုံသပဌု၍ ဒေတာလလဟဲပဌောင်သခဌင်သအတလက် ADBC ​​(Arrow Database Connectivity) API အတလက် ပံ့ပိုသမဟု ပေါင်သထည့်ထာသသည်။
  • Swift ကုဒ်နဟင့် ပေါင်သစည်သရန်အတလက် စည်သနဟောင်မဟုကို အကောင်အထည် ဖော်ထာသသည်။
  • ပုံသေအာသဖဌင့် ကိန်သပဌည့်လုပ်ဆောင်မဟုမျာသအစာသ Floating Point တလက်ချက်မဟုမျာသကို လုပ်ဆောင်ရန် division operator ("/") ၏ အပဌုအမူကို ပဌောင်သလဲခဲ့သည်။ အော်ပရေတာအသစ် “//” ကို ကိန်သပဌည့်ခလဲခဌင်သအတလက် အဆိုပဌုထာသသည်။ “SET integer_division=true;” ကို သတ်မဟတ်ခဌင်သဖဌင့် အပဌုအမူဟောင်သကို ပဌန်ပေသနိုင်ပါသည်။
  • "NULLS FIRST" မဟ "NULLS LAST" သို့ အမျိုသအစာသခလဲသည့်အခါ သုညမဟတ်တမ်သမျာသကို ထည့်သလင်သတလက်ချက်သည့်နည်သလမ်သကို ဆိုလိုသည်။ NULL တန်ဖိုသမျာသကို စာရင်သ၏အစထက် အဆုံသတလင် ယခု ရိုက်နဟိပ်မည်ဖဌစ်သည်။ “SET default_null_order='nulls_first';” ကို သတ်မဟတ်ခဌင်သဖဌင့် အပဌုအမူဟောင်သကို ပဌန်ပေသနိုင်ပါသည်။

ထို့အပဌင်၊ SQLite ဖဌင့် သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသကို အသုံသပဌုရန်အတလက် ကုဒ်ထုတ်ပေသသည့် ဂျင်နရေတာကို ပံ့ပိုသပေသသည့် Facebook မဟ တီထလင်ထာသသည့် CG/SQL ပရောဂျက်ကို ကျလန်ုပ်တို့ မဟတ်သာသနိုင်ပါသည်။ CG/SQL သည် သင့်အာသ Standard C စာကဌည့်တိုက်၏ ခေါ်ဆိုမဟုလုပ်ဆောင်ချက်မျာသနဟင့် SQLite တလင် ဒေတာရယူခဌင်သတို့ကို ခလင့်ပဌုပေသသည့် အထူသဘာသာစကာသဖဌင့် T-SQL (Transact-SQL) တလင် သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသကို ရေသသာသခလင့်ပဌုသည်။ သတ်မဟတ်ထာသသော လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်ရန်နဟင့် ရဟုပ်ထလေသသော မေသမဌန်သမဟုမျာသကို လုပ်ဆောင်ရန် SQLite C API ကို အသုံသပဌုသည့် ထုတ်လုပ်ထာသသော သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသကို C ကုဒ်တလင် စုစည်သထာသသည်။ စုစည်သသိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသကို C၊ Java၊ နဟင့် Objective-C ပရိုဂရမ်မျာသသို့ ချိတ်ဆက်နိုင်သည်။ ပရောဂျက်ကုဒ်ကို C ဖဌင့် ရေသသာသထာသပဌီသ MIT လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသည်။

source: opennet.ru

မဟတ်ချက် Add