ডাটাবেস পুনরায় নকশার সুযোগ: এই সেন্সর ডেটা সংগ্রহের জন্য কোন টেবিল ডিজাইনটি ব্যবহার করতে হবে?


13

পটভূমি

আমার প্রায় 2000 সেন্সরগুলির একটি নেটওয়ার্ক রয়েছে যার প্রত্যেকটিরই প্রায় 100 ডেটা পয়েন্ট রয়েছে যা আমরা 10 মিনিটের ব্যবধানে সংগ্রহ করি। এই ডেটা পয়েন্টগুলি সাধারণত ইন-মান হয় তবে কিছু স্ট্রিং এবং ফ্লোট হয়। এই ডেটা 90 দিনের জন্য সংরক্ষণ করা উচিত, যদি সম্ভব হয় এবং এখনও দক্ষ হয়।

ডাটাবেস ডিজাইন

এই প্রকল্পটির মূল কাজটি যখন অর্পণ করা হয়েছিল, তখন আমি একটি সি # অ্যাপ লিখেছিলাম যা প্রতিটি সেন্সরের জন্য কমা দ্বারা পৃথক করা ফাইল লিখেছিল। সেই সময় তেমন কিছু ছিল না, যখন কেউ প্রবণতাগুলি দেখতে চেয়েছিল তখন আমরা এক্সেলের সিএসভি খুলতাম এবং এটি প্রয়োজনীয়ভাবে গ্রাফ করতাম।

জিনিসগুলি বৃদ্ধি পেয়েছে এবং আমরা একটি মাইএসকিউএল ডাটাবেসে স্যুইচ করেছি। আমি প্রতিটি সেন্সরের জন্য একটি টেবিল তৈরি করেছি (হ্যাঁ আমি জানি, প্রচুর টেবিল!); এটি ভালভাবে কাজ করছে, তবে এর কিছু সীমাবদ্ধতা রয়েছে। অনেকগুলি সারণী সহ, কোনও কোয়েরি লেখা স্পষ্টত অসম্ভব যা কোনও নির্দিষ্ট মান সন্ধানের সময় সমস্ত সেন্সরগুলির মধ্যে ডেটা খুঁজে বের করে।

পরবর্তী সংস্করণের জন্য, আমি মাইক্রোসফ্ট এসকিউএল সার্ভার এক্সপ্রেসে স্যুইচ করেছি এবং সমস্ত সেন্সর ডেটা একটি বড় টেবিলের মধ্যে রেখেছি। এটিও কাজ করে এবং আগ্রহী এমন সমস্ত সেন্সরগুলির মধ্যে মান খুঁজে পেতে আমাদের জিজ্ঞাসা করতে দিন। যাইহোক, আমি এক্সপ্রেস সংস্করণটির জন্য 10 গিগাবাইটের সীমাতে চলে এসেছি এবং এসকিউএল সার্ভার স্ট্যান্ডার্ডে বিনিয়োগ না করে মাইএসকিউএলে ফিরে যাওয়ার সিদ্ধান্ত নিয়েছি।

প্রশ্নটি

আমি মাইএসকিউএল পারফরম্যান্স এবং স্কেলাবিলিটিতে খুশি, তবে সমস্ত-ডেটা-ইন-ওয়ান-টেবিল পদ্ধতির সাথে লেগে থাকলে অনিশ্চিত। একক টেবিলের মধ্যে 10 গিগাবাইট অন্যরকম ডিজাইনের জন্য জিজ্ঞাসা করছে। আমার উল্লেখ করা উচিত যে গ্রাফিংয়ের জন্য ডেটা অনুসন্ধানের প্রয়োজনীয়তা এখনও রয়েছে এবং আমি উদ্বিগ্ন যে কোনও প্রশ্নের জন্য পারফরম্যান্সের সমস্যা থাকবে যা গ্রাফগুলি উদাহরণস্বরূপ, পুরো 90 দিনের মধ্যে এক সেন্সরের তাপমাত্রার ডেটা। (অন্য কথায়, গ্রাফটি এমন কিছু হওয়া উচিত যা দ্রুত তৈরি হওয়া উচিত, এসকিউএলকে কেবল আগ্রহের সংবেদককে আলাদা করার জন্য ডেটা পাইলগুলির মাধ্যমে বাছাই করার জন্য অপেক্ষা না করে))

পারফরম্যান্স বাড়ানোর জন্য কি আমার এই টেবিলটি আলাদা করা উচিত? নাকি এত বড় টেবিল থাকা অস্বাভাবিক নয়?

সেন্সর আইডি এবং টাইমস্ট্যাম্প কলামগুলিতে আমার সূচি রয়েছে, যা কোনও প্রশ্নের জন্য নির্ধারিত সীমানা। (উদাহরণস্বরূপ এক থেকে সময়ে সময়ে বি সেন্সর এক্স এর ডেটা পান)।

আমি শারডিং এবং বিভাজন সম্পর্কে কিছুটা পড়েছি, তবে মনে হয় না যে এগুলি ক্ষেত্রে উপযুক্ত।


সম্পাদনা:

এখনও অবধি মন্তব্য এবং উত্তরের ভিত্তিতে কিছু অতিরিক্ত তথ্য সহায়ক হতে পারে:

অনির্দিষ্ট স্টোরেজ নয়: বর্তমানে আমি 90 দিনের অতীতে ডেটা সঞ্চয় করি না। প্রতিদিন, আমি একটি কোয়েরি চালিত করি যা 90 দিনের চেয়ে পুরানো ডেটা সরিয়ে দেয়। যদি এটি ভবিষ্যতে গুরুত্বপূর্ণ হয়ে ওঠে তবে আমি আরও সঞ্চয় করব, তবে আপাতত এটি যথেষ্ট। এটি চেক এবং পারফরম্যান্সে উচ্চ (ইর) আকার রাখতে সহায়তা করে।

ইঞ্জিনের ধরণ: মাইএসএএমকিউলে বাস্তব মাইএসকিউএল প্রয়োগ করা হয়েছে। নতুন বাস্তবায়নের জন্য এবার সারণী তৈরি করার সময় (অনেকের পরিবর্তে একটি ডেটা টেবিল) তারা ইনোডিবিতে ডিফল্ট হয়েছে। আমি বিশ্বাস করি না যে আমার একটি বা অন্যটির প্রয়োজন আছে।

সাধারণকরণ: তথ্য সংগ্রহের টেবিলের পাশাপাশি অবশ্যই অন্যান্য সারণী রয়েছে। এই সমর্থন সারণীগুলি সেন্সরগুলির জন্য নেটওয়ার্ক তথ্য, ব্যবহারকারীদের জন্য লগইন তথ্য ইত্যাদির মতো জিনিসগুলি সঞ্চয় করে normal স্বাভাবিক করার মতো কিছুই নেই (যতদূর আমি জানি)। ডেটা টেবিলটিতে এতগুলি কলাম থাকার কারণটি হ'ল প্রতিটি সেন্সর থেকে অনেকগুলি ভেরিয়েবল রয়েছে। (একাধিক তাপমাত্রা, হালকা মাত্রা, বায়ুচাপ, ইত্যাদি) আমার কাছে স্বাভাবিককরণের অর্থ হ'ল কোনও অতিরিক্ত কাজ বা পুনরাবৃত্তি গোষ্ঠী নেই। (কমপক্ষে 1NF এর জন্য)) প্রদত্ত সংবেদকের জন্য, একটি নির্দিষ্ট সময়ে সমস্ত মান সংরক্ষণ করার জন্য এক সারি ডেটা প্রয়োজন এবং সেখানে কোনও 1 নেই: এন সম্পর্কের সাথে জড়িত নেই (যা আমি দেখি)।

আমি টেবিলটি কার্যত পৃথকভাবে ভেঙে ফেলতে পারি, উদাহরণস্বরূপ: এক টেবিলের সমস্ত তাপমাত্রা-সম্পর্কিত মান এবং অন্যটিতে বায়ুচাপ-সম্পর্কিত মানগুলি তৈরি করে। যদিও এটি কেবলমাত্র কোনও তাপমাত্রা-ক্যোরি তৈরির দক্ষতার উন্নতি করতে পারে, তবুও আমাকে একবারে সমস্ত ডেটা .োকাতে হবে। তারপরেও, দক্ষতা অর্জনগুলি SELECT অপারেশনগুলির জন্য উপযুক্ত হতে পারে। স্পষ্টতই আমি ব্যবহারকারীদের প্রায়শই ডেটার জন্য অনুরোধ করে তার ভিত্তিতে টেবিলটি উল্লম্বভাবে ভেঙে ফেলা ভাল। সম্ভবত এটিই আমার করা উচিত। আমি মনে করি আমার প্রশ্ন জিজ্ঞাসা করার জন্য আমি নিশ্চিতকরণের সন্ধান করছি যে এটি করা সার্থক হবে।


সম্পাদনা 2:

ডেটা ব্যবহার: শেষ পর্যন্ত অনেকগুলি ডেটা কখনই প্রয়োজন হয় না বা প্রয়োজন হয় না, কারণ আমরা সাধারণত সমস্যাযুক্ত আইটেমগুলিতে ফোকাস করি। তবে সমস্যাগুলি অনুসন্ধানের চেষ্টা করার জন্য আমরা ডেটা অনুসন্ধান করতে এবং বিভিন্ন আইটেমগুলিতে জুম বাড়ানোর জন্য বিভিন্ন সরঞ্জাম ব্যবহার করি।

উদাহরণস্বরূপ, আমরা একটি স্মৃতি ব্যবহারের মান (একটি গ্রাহক-নির্দিষ্ট মালিকানাধীন সফ্টওয়্যার প্রোগ্রাম) এবং একটি রিবুট / ক্র্যাশের মধ্যে পারস্পরিক সম্পর্ক লক্ষ্য করেছি। আমি সংগ্রহ করা ডেটা পয়েন্টগুলির একটি এই মেমরির ব্যবহারের সাথে সম্পর্কিত এবং আমি নির্দিষ্ট historicalতিহাসিক ব্যবহার অতিক্রম করার পরে ডিভাইসগুলি অস্থির হয়ে যায় তা দেখানোর জন্য historicalতিহাসিক ডেটা দেখতে সক্ষম হয়েছি। আজ, এই সফ্টওয়্যারটি চলমান ডিভাইসের উপসেটের জন্য, আমি এই মানটি পরীক্ষা করে দেখি এবং এটি খুব বেশি হলে একটি রিবুট কমান্ড জারি করি। এটি আবিষ্কার না হওয়া অবধি আমার মনে হয় নি যে এই ডেটা সংগ্রহ করা কোনও মূল্যবান।

এই কারণে, আমি বজায় রেখেছি যে 100 টি তথ্য পয়েন্ট সংগ্রহ এবং সংরক্ষণ করা হবে, এমনকি যদি মান প্রশ্নবিদ্ধ হয়। তবে সাধারণ প্রতিদিনের ব্যবহারে ব্যবহারকারীরা সাধারণত এই পরামিতিগুলির কয়েক ডজন পরীক্ষা করে থাকেন। যদি কোনও ব্যবহারকারী কোনও নির্দিষ্ট ভৌগলিক অঞ্চলে আগ্রহী হন, তবে তিনি সম্ভবত কয়েক ডজন সেন্সরের জন্য গ্রাফ বা ডেটা স্প্রেডশিট তৈরি করতে পারেন (সফ্টওয়্যার ব্যবহার করে)। তাপমাত্রা, বায়ুচাপ এবং হালকা মাত্রার মতো জিনিসগুলি দেখায় এমন দুটি বা তিনটি প্লট লাইন সহ 30 দিনের গ্রাফটি দেখার পক্ষে অস্বাভাবিক কিছু নয়। এটি করার সাথে এর অনুরূপ একটি ক্যোয়ারী চালানো হবে:

SELECT sensor_id, location, data_timestamp, temp1, air1, light1
FROM data
WHERE data_timestamp >= '2012-02-01'
AND sensor_id IN (1, 2, 3);

(মূল মাইএসকিউএল সংস্করণে, যেখানে প্রতিটি সেন্সরের নিজস্ব টেবিল ছিল, সেখানে পৃথক পৃথক তিনটি ক্যোয়ারী জারি করা হবে, তবে গ্রাফ তৈরির জন্য সফ্টওয়্যারটিতে ফলাফলগুলি মিলিত হয়েছে))

কারণ dataসারণীতে অনেকগুলি সারি রয়েছে (10 মিলিয়ন ডলার), সূচকগুলি থাকা সত্ত্বেও idএবং data_timestampপারফরম্যান্সটি একাধিক সারণির দৃশ্যের চেয়ে উল্লেখযোগ্যভাবে খারাপ (4500 সারি 9 সেকেন্ডে ফিরে এসেছে যার উদাহরণের সাথে এক সেকেন্ডেরও কম নয়)। কোন সেন্সরগুলি নির্দিষ্ট মানদণ্ডগুলি পূরণ করে তা সন্ধান করার ক্ষমতাটি একাধিক-টেবিল স্কিমাতে কার্যত শূন্য এবং এইভাবে একটি একক টেবিলে যাওয়ার কারণ।

এই ধরণের কোয়েরি একাধিক ব্যবহারকারী তাত্ক্ষণিকভাবে সম্পন্ন করতে পারেন কারণ তারা বিভিন্ন গ্রুপের ডেটা নির্বাচন করে এবং প্রতিটি ফলাফল থেকে গ্রাফের তুলনা করে। গ্রাফ বা স্প্রেডশিটে প্রায় 10 সেকেন্ড অপেক্ষা করা বেশ হতাশার হতে পারে।

90 দিনের পরে ডেটা ফেলে দেওয়া হয়। এটি সংরক্ষণাগারভুক্ত করা যেতে পারে তবে এটি বর্তমানে প্রয়োজন হয় না।

আশা করি এই তথ্য সংগ্রহ এবং সঞ্চয় করার পরে ডেটা কীভাবে ব্যবহৃত হয় তা আরও সঠিকভাবে দেখাতে সহায়তা করে।


এই প্রশ্নের সঠিক উত্তর পাওয়ার জন্য আপনার সম্ভবত ডেটা কীভাবে ব্যবহৃত হচ্ছে তা নিয়ে প্রসারিত হওয়া উচিত। আপনি এতক্ষণ যে তথ্য সরবরাহ করেছেন তার গভীরতার উপরে আপনি বক্ররেখার চেয়ে এগিয়ে রয়েছেন তবে আপনি ভুল প্রশ্ন থেকে আপনার প্রশ্ন জিজ্ঞাসা করতে পারেন।
মার্ক স্টোরি-স্মিথ

ভাল বক্তব্য, @ মার্ক, আমি এটিরও বিস্তারিত জানাব। আমি ভয়ে ভয়ে ভয়ে খুব দীর্ঘ প্রশ্ন না করার চেষ্টা করছিলাম।
জাইলটন

উত্তর:


5

কোনও বড় কারণে আপনার টেবিল বিভাজন সম্পর্কে চিন্তা করা উচিত।

জায়ান্ট টেবিলটিতে থাকা আপনার সমস্ত সূচী, এমনকি কেবল একটি সূচক, ইনসার্টস, আপডেট এবং ডিলিটগুলি সম্পাদন করার সময় সূচী রক্ষণাবেক্ষণ সম্পাদনের জন্য প্রচুর সিপিইউ লোড এবং ডিস্ক আই / ও তৈরি করতে পারে।

টেবিল বিভাজন কেন একটি বড় সহায়ক হবে সে বিষয়ে আমি October অক্টোবর, ২০১১ফিরে একটি পূর্ববর্তী পোস্ট লিখেছিলাম । আমার আগের পোস্টের একটি অংশ এখানে দেওয়া হয়েছে:

ডেটা বিভাজনের সাথে একই শ্রেণিতে যৌক্তিক ও সংহতিযুক্ত গ্রুপের ডেটা পরিবেশন করা উচিত। যতক্ষণ না তথ্য সঠিকভাবে গোষ্ঠীভুক্ত হয় ততক্ষণ প্রতিটি পার্টিশন অনুসন্ধানের পারফরম্যান্সকে মূল বিবেচনা করা উচিত নয়। লজিক্যাল পার্টিশনটি অর্জন করার পরে অনুসন্ধানের সময়টিতে মনোনিবেশ করুন। আপনি যদি কেবল আইডির মাধ্যমে ডেটা পৃথক করে থাকেন তবে সম্ভবত অনেকগুলি সারি ডেটা পড়া বা লেখার জন্য অ্যাক্সেস নাও করা যেতে পারে। এখন, এটি একটি প্রধান বিবেচনা হওয়া উচিত: প্রায়শই অ্যাক্সেস করা সমস্ত আইডির সন্ধান করুন এবং এর দ্বারা বিভাজন করুন। সমস্ত কম ঘন ঘন অ্যাক্সেস করা আইডির একটি বড় সংরক্ষণাগার টেবিলের মধ্যে থাকা উচিত যা 'নীল চাঁদে একবার' ক্যোরির জন্য সূচী দর্শন দ্বারা এখনও অ্যাক্সেসযোগ্য।

আপনি এই পরে আমার সম্পূর্ণ পোস্ট পড়তে পারেন ।

তাড়াতে ডান কাটাতে, আপনাকে গবেষণা করতে হবে এবং আপনার 10 জিবি টেবিলে কোন ডেটা খুব কম ব্যবহার করা হচ্ছে তা খুঁজে বের করতে হবে। সেই ডেটাটি সংরক্ষণাগার সারণীতে রাখতে হবে যা quতিহাসিক প্রকৃতির জন্য আপনার যদি অ্যাডহক প্রশ্নের প্রয়োজন হয় তবে তা সহজেই অ্যাক্সেসযোগ্য। 10 গিগাবাইট থেকে সেই সংরক্ষণাগারটি 10 OPTIMIZE TABLEগিগাবাইট টেবিলের পরে স্থানান্তরিত করার ফলে একটি কার্যনির্বাহী সেট তৈরি হতে পারে যা SELECTs, INSERTs, আপডেটগুলি এবং মুছে ফেলার জন্য দ্রুততর হয়। এমনকি ডিডিএল 10 গিগাবাইটের টেবিলের চেয়ে 2 জিবি ওয়ার্কিং সেটে দ্রুত চলে যাবে।

আপডেট 2012-02-24 16:19 ইডিটি

দুটি বিষয় বিবেচনা করতে হবে

  1. আপনার মন্তব্য থেকে, মনে হচ্ছে স্বাভাবিককরণ যা আপনার প্রয়োজন হতে পারে।
  2. আপনার 90 দিনের পুরানো সমস্ত কিছু আর্কাইভ টেবিলের মধ্যে মাইগ্রেট করার দরকার হতে পারে তবে একই সময়ে সংরক্ষণাগার এবং কাজের সেট অ্যাক্সেস করতে পারেন। যদি আপনার ডেটা সমস্ত মাইআইএসএএম হয় তবে আমি MERGE স্টোরেজ ইঞ্জিনটি ব্যবহার করার পরামর্শ দিচ্ছি। প্রথমত, আপনি একবার মার্জ টেবিল মানচিত্র তৈরি করেন যা কোনও ওয়ার্কিং সেট মাইআইএসএএম টেবিল এবং একটি সংরক্ষণাগার মাইআইএসএএম টেবিলকে এক করে দেয়। আপনি একটি মাইআইএসএএম টেবিলের মধ্যে 91 দিনেরও কম ডেটা রাখবেন এবং সংরক্ষণাগারে 90 দিনের পুরানো কোনও ডেটা রোলওভার করবেন। আপনি কেবল মার্জ টেবিল মানচিত্রটি জিজ্ঞাসা করবেন।

এটি কীভাবে ব্যবহার করতে হয় সে সম্পর্কে আমি দুটি পোস্ট এখানে লিখেছি:

এখানে অনেকগুলি কলাম সহ টেবিলে তৈরি করা একটি অতিরিক্ত পোস্ট

মাইএসকিউএলে অনেকগুলি কলাম রয়েছে


এমন কলামগুলি রয়েছে যা ঘন ঘন প্রয়োজন হয় তবে সমস্ত সেন্সর প্রায় একই শতাংশের দৃষ্টি আকর্ষণ করে। সুতরাং, আমি কল্পনা করতে পারি যে টেবিলটি উল্লম্বভাবে বিভক্ত করা সুবিধাজনক হবে। উদাহরণস্বরূপ, একটি 20-কলামের টেবিল (প্রায়শই অ্যাক্সেস করা হয়) এবং 80-কলামের টেবিল (প্রায়শই অ্যাক্সেস করা হয়) আমি নিশ্চিত নই যে এটি বিভাজন হিসাবে একই জিনিস।
জেলটন

সম্পাদনার জন্য ধন্যবাদ। আমি "মাইএসকিউএলে অনেকগুলি কলাম" সম্পর্কে আপনার পোস্টটি পড়েছি। আমি আমার অতিরিক্ত কিছু পয়েন্ট দিয়ে প্রশ্নটি সম্পাদনা করব যা কার্যকর হতে পারে।
জেলটন

5

আকর্ষণীয় ... যদি সমস্ত সেন্সর একই ধরণের ডেটা উত্পাদন করে তবে সেগুলি সমস্ত একই টেবিলে রাখাই বুদ্ধিমান নয়, তবে সেই পরিমাণ ডেটা সহ, আমি দেখতে পাচ্ছি আপনি কেন কর্মক্ষমতা নিয়ে চিন্তিত হবেন।

আপনি যে গ্রাফটি উত্পাদন করেন সেই সময়টি কি 90 দিনের মতো সময় হয়? যদি তা হয় তবে আপনার দুটি টেবিল থাকতে পারে: প্রধান সেন্সর ডেটা টেবিল যা আজ অবধি 90 দিন আগে থেকে ডেটা (বা কিছুটা স্ল্যাক চাইলে আরও কিছু বেশি) সংরক্ষণ করে এবং এর চেয়ে পুরানো সমস্ত কিছুই সংরক্ষণাগার টেবিলটিতে যায়। এটি যে সারণী থেকে রিপোর্ট তৈরি করা শুরু হয়েছিল তার আকার হ্রাস করতে সহায়তা করতে পারে এবং আশা করা যায় যে আপনার 10 জিবি ডেটা সর্বাধিক আর্কাইভ টেবিলের মধ্যে থাকবে, মূল সারণীতে নয়। আর্কাইভ কাজটি রাত্রে চালানোর জন্য নির্ধারিত হতে পারে।

হতে পারে এমন একটি পৃথক রিপোর্টিং ডাটাবেস তৈরির কথাও বিবেচনা করুন যা কোনও কাঠামোতে ডেটা সংরক্ষণ করে যা থেকে প্রতিবেদন উত্পন্ন করার জন্য ভাল (আপনি যেগুলি জিজ্ঞাসা করছেন তার সাথে আরও ঘনিষ্ঠভাবে মেলে নকশাকৃত সারণী এবং সম্ভবত প্রাক-গণনা এবং সামগ্রিক মানগুলি যা অন্যথায় দীর্ঘ সময় নিতে পারে উত্সাহিত করুন, সম্ভব হলে) এবং নিয়মিত (যেমন রাত্রে) ভিত্তিতে মূল ডাটাবেস থেকে এটি পুনরায় তৈরি করুন। অবশ্যই, যদি আপনার আপ-টু-মিনিট ডেটা থেকে উত্পন্ন প্রতিবেদনগুলির প্রয়োজন হয় তবে এটি খুব ভাল কাজ করতে পারে না।


এই মুহুর্তে 90 দিনের অতীতে যে কোনও জিনিস সংরক্ষণ করা প্রয়োজন হয় না তবে এটি দুর্দান্ত। "আর্কাইভ" টেবিলের মধ্যে সংরক্ষণ করা ভাল agree গ্রাফ এবং ডেটা বিশ্লেষণ মাত্র 90 ঘন্টা থেকে পুরো 90 দিনের মধ্যে রয়েছে। বেশিরভাগ গ্রাফিংয়ের অনুরোধগুলি কেবল গত সপ্তাহে বা তার বেশি ডেটা ব্যবহার করে তবে 90 দিনের গ্রাফগুলি সাধারণ। আমাদের ফার্মটি (এখনও) দীর্ঘতর প্রতিবেদনগুলির জন্য অনুরোধ করে নি।
জেলটন

@ জেলটন: আপনি চাইলে এই পদ্ধতির মতো আপনার অনেক স্তর থাকতে পারে। সর্বাধিক বর্তমান টেবিলটি কেবলমাত্র টুডে থেকে থাকতে পারে। পরের সারণীতে আজ থেকে 2 সপ্তাহ আগে থাকতে পারে। পরবর্তী সারণীতে আজ থেকে 90 দিন আগে থাকতে পারে। শেষ টেবিলটি সবকিছুই পারে।
হতাশ

যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে আপনি টেবিলটির অনুলিপি করতে বলছেন, তবে বিভিন্ন সময়সীমার কভারেজ সহ। সুতরাং কেউ যদি-দিনের রিপোর্টের জন্য আবেদন করেন, কেবল একটি সপ্তাহে ফিরে আসা একটি টেবিলটি ব্যবহার করা হবে। যদি সেগুলি 8 দিনের মধ্যে প্রসারিত হয় তবে পরবর্তী বৃহত্তম টেবিলটি (যেমন 30 দিনের) ব্যবহার করা হবে? এটি অবশ্যই সংক্ষিপ্ত-সময়কালীন প্রশ্নের গতির উন্নতি করবে, তবে স্টায়ার্ড ব্যয়ে (সস্তা) এবং টায়ার্ড টেবিলগুলি (যেমন সস্তা নয়) মোকাবেলায় প্রোগ্রামিংয়ের যুক্তিতে ব্যয় করে।
জেলটন

@ জেলটন: হ্যাঁ, আমি মনে করি আপনি এটি সঠিকভাবে বুঝতে পেরেছেন। যদি ক্যোয়ারির সময়কালের ব্যাপ্তিগুলি মানসম্পন্ন হয় (আজ - 1 দিন, আজ - 7 দিন, আজ - 30 দিন, আজ - 90 দিন) তবে আমি মনে করি না যে এটি খুব বেশি কঠিন হবে কারণ আপনি সর্বদা জানেন যে কোন টেবিলটি করতে হবে আঘাত। যদি সময়সীমা বিভিন্ন দৈর্ঘ্যের হতে পারে যেখানে ব্যাপ্তির শুরুটি বর্তমান তারিখের নাও হতে পারে, তবে আপনি সঠিকভাবে প্রয়োগ করেছেন যুক্তিটি কার্যকর এবং অনুসন্ধানগুলি পাবেন যেগুলি একাধিক টেবিলের ইউনিয়ন ক্রিয়াকলাপের সাথে ক্রস টেবিলগুলি ব্যয়বহুল হতে পারে।
হতাশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.