`আপডেটডব এবং` চিহ্নিত করা `কোন ধরণের ডাটাবেস ব্যবহার করে?


25

locateপ্রোগ্রাম findutilsস্ক্যান এক বা ফাইলের নামের ও প্রদর্শন কোনো মিল বেশি ডাটাবেস। এই findফাইলটি শেষ ফাইলের নাম ডাটাবেস আপডেটের সময় উপস্থিত থাকলে খুব দ্রুত কমান্ড হিসাবে ব্যবহার করা যেতে পারে ।

আজকাল অনেক ধরণের ডাটাবেস রয়েছে,

সুতরাং কি ধরনের ডাটাবেস updatedbআপডেট এবং locateব্যবহার করে?

ধন্যবাদ।


অবস্থানটি বাস্তবে বার্কলিডিবি ব্যবহার করে কিনা তা নির্বিশেষে এটি আপনার তদন্তের পক্ষে মূল্যবান it's এটি একটি অতি পুরানো, সাধারণ, কার্যকর ডিস্ক-ভিত্তিক কী-মান স্টোর।
pjc50

@ pjc50 আমি পছন্দ করি। ডাটাবেসের জন্য ফাইলগুলি কোথায়? আমি কীভাবে তাদের বিষয়বস্তু দেখতে পারি?
টিম

সনাক্ত করার জন্য? serverfault.com/questions/454127/…
pjc50

"পৃষ্ঠা পাওয়া যায় নি", লিঙ্কটি সার্ভারফল্ট করা
টিম

সুতরাং "কী" এবং "মানগুলি" ডাটাবেসে কী উপস্থাপন করে? যদি আমি স্টিফেন কিট এর মন্তব্য ইউনিক্স.স্ট্যাকেক্সেঞ্জ / বিকিউশনস / 937৯7২২ / সঠিকভাবে বুঝতে পারি তবে ডাটাবেসটি মূল-মান নয়।
টিম

উত্তর:


29

জেনেরিক ডাটাবেস ইঞ্জিনের পরিবর্তে locate/ updatedbসাধারণত তাদের প্রয়োজনীয়তার সাথে সুনির্দিষ্ট নির্দিষ্ট ডাটাবেসগুলি ব্যবহার করে / প্রয়োগ করে । আপনি প্রতিটি প্রয়োগের দ্বারা নথিভুক্ত সেই নির্দিষ্ট ডাটাবেসগুলি খুঁজে পাবেন; উদাহরণ স্বরূপ:

  • জিএনইউ findutils'নথিতে লিপিবদ্ধ আছে locatedb(5), এবং এটি কেবলমাত্র ফাইলগুলির একটি তালিকা (একটি নির্দিষ্ট সংক্ষেপণ অ্যালগরিদম সহ);
  • mlocateএর নথিভুক্ত রয়েছে mlocate.db(5), এবং ডিরেক্টরি এবং ফাইলগুলির তালিকা (মেটাডাটা সহ) হিসাবে বিবেচনা করা যেতে পারে।

ধন্যবাদ। সুনির্দিষ্ট প্রয়োজন অনুসারে নির্দিষ্ট ডেটাবেসগুলি ডিজাইন এবং প্রয়োগের নীতিগুলি আমি কোথায় এবং কীভাবে শিখতে পারি? আমি পড়ার জন্য কোনও রেফারেন্স প্রশংসা করব।
টিম

11
ডিজাইনিং ডাটাবেস নকশা ডাটা স্ট্রাকচার নিচে boils, তাই ঐ বিষয়ে জানার, এবং তারপর আকার-বনাম-গতি নকশা বিনিময় প্রথা সম্পর্কে ... আমি কোনও নির্দিষ্ট রিসোর্সে যে ভাল, সম্ভবত কিছু মত হবে আমাদের জানা নেই মুক্তো প্রোগ্রামিং হবে এই বিষয়গুলি সম্পর্কে চিন্তাভাবনা করার একটি দুর্দান্ত ভূমিকা (এবং সেগুলি খুব বেশি ভাবাও নয়)।
স্টিফেন কিট

ধন্যবাদ। আমি ডেটা স্ট্রাকচার সম্পর্কে কিছু শিখেছি, এবং পরবর্তী প্রশ্নটি তথ্য কাঠামো থেকে ডাটাবেসে যাওয়ার রেফারেন্স এবং উপায়গুলি সন্ধান করবে।
টিম

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

2
আমি বছরের পর বছর ধরে অবস্থিত & mlocon.db দিয়ে মোটামুটি কিছু করেছি। আমার কাছে মূলত ডিবানিতে আমার dlocateপ্রোগ্রামের জন্য একটি অবস্থিত তৈরি করতে পার্ল কোড ছিল । আমি আবিষ্কার করে শেষ করেছিলাম যে কোনও পাঠ্য ফাইলকে গ্রেপিং করা কোনও অবস্থিত সন্ধানের চেয়ে বহুগুণ দ্রুত ছিল এবং আজকাল ডিস্কগুলির আকার দেওয়া ফাইলের আকারের সঞ্চয় তুচ্ছ নয়। তাই আমি কেবল গ্রেপ এ চলেছি। আমার কাছে একটি স্থানীয় ক্রোন জব রয়েছে যা মলোকট ক্রোন জব চালানোর পরে প্লেইন পাঠাতে mlocon.db ফেলে রাখে, যা আমি একটি স্থানীয় qlocateশেল স্ক্রিপ্ট দিয়ে অনুসন্ধান করি .... চালনার চেয়ে অনেক দ্রুত mlocateএবং এ ছাড়াও কিছু কার্যকর অতিরিক্ত বিকল্প রয়েছে।
ক্যাস

13

সি স্ট্রাক্টের সমতল ফাইল বলে মনে হচ্ছে, Gnu LibC OBSTACKS ম্যাক্রো ব্যবহার করে লিখিত / পঠিত

উত্স দেখুন

https://github.com/msekletar/mlocate/blob/master/src/updatedb.c#L720

https://github.com/msekletar/mlocate/blob/master/src/locate.c#L413

আপনি কিছু অনুরূপ পেতে পারে

find / -xdev -type f -not -path \*\.git\/\* | gzip -9 > /tmp/files.gz
zgrep file_i_want /tmp/files.gz

2
ধন্যবাদ। শেষে দুটি কমান্ড কী করছে?
টিম

2
@Tim প্রথম কমান্ড ফাইল সিস্টেম (অনুসন্ধান করছে সে findরুট (থেকে) /) ডিরেক্টরির অন্যান্য ফাইল সিস্টেম (চালু ডিরেক্টরি মধ্যে সাজানো ছাড়াই -xdev), নিয়মিত ফাইল ( -type f), নেই *.gitডিরেক্টরি ( -not -path \*\.git\/\*)। এটি আউটপুট ( | gzip -9) সঙ্কুচিত করে এবং ফাইল /tmp/files.gz( > /tmp/files.gz) এ এটি সংরক্ষণ করে । পরবর্তী লাইন দিয়ে অনুসন্ধান করছে সে zgrepফাইলের জন্য file_i_wantভিতরে কম্প্রেস ফাইল/tmp/files.gz
piotrekkr

2

আমি যতদূর জানি বার্কলে ডিবি যা মূল / মান ডেমোনলেস ডাটাবেস। আরও তথ্যের জন্য লিঙ্ক অনুসরণ করুন। উইকিপিডিয়া থেকে নিষ্কাশন:

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

RHEL / CentOS এ ডাটাবেসের অবস্থান /var/lib/mlocate/mlocate.db(অন্যান্য বিতরণের বিষয়ে নিশ্চিত নয়) utions কমান্ডটি locate --statisticsআপনাকে অবস্থান এবং ডাটাবেসের কিছু পরিসংখ্যান (উদাহরণ) সম্পর্কে তথ্য দেবে:

Database /var/lib/mlocate/mlocate.db:
        16,375 directories
        242,457 files
        11,280,301 bytes in file names
        4,526,116 bytes used to store database

এমলোকেট ফর্ম্যাটের জন্য এখানে ম্যান পেজের প্রধান:

একটি এমলোকেট ডাটাবেস ফাইল শিরোলেখ দিয়ে শুরু হয়: যাদু সংখ্যার জন্য 8 বাইট (একটি সি আক্ষরিকের মতো "\ 0 মাইল-কেট"), বড় এন্ডিয়ানে কনফিগারেশন ব্লকের আকারের জন্য 4 বাইট, ফাইল ফর্ম্যাট সংস্করণ (0), 1 এর জন্য 1 বাইট "দৃশ্যমানতা প্রয়োজন" পতাকা (0 বা 1), 2 বাইট প্যাডিং এবং ডাটাবেসের মূলের একটি NUL- সমাপ্ত পথের নাম বাইট।

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


2
এটি locate/ updatedb... এর প্রয়োগের উপর নির্ভর করে
স্টিফেন কিট

2
mlocateঅবশ্যই স্পষ্টতই বার্কলে ডিবি ব্যবহার করে না।
স্টিফেন কিট

1
আপনার বার্কলেডিবি দাবির পক্ষে কোন উত্স আছে? আপনার উত্তরের দ্বিতীয় অংশটি এর বিপরীতে।
মাদুর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.