GoGPT Best VPN GoSearch

অনওয়ার্কস ফেভিকন

pt-query-digestp - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে pt-query-digestp চালান

এটি হল pt-query-digestp কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


pt-query-digest - লগ, প্রসেসলিস্ট এবং tcpdump থেকে MySQL প্রশ্ন বিশ্লেষণ করুন।

সাইনোপিসিস


ব্যবহার: pt-query-digest [বিকল্প] [ফাইল] [DSN]

pt-query-digest ধীর, সাধারণ এবং বাইনারি লগ ফাইল থেকে MySQL প্রশ্ন বিশ্লেষণ করে। এটা হতে পারে
এছাড়াও tcpdump থেকে "প্রসেসলিস্ট দেখান" এবং মাইএসকিউএল প্রোটোকল ডেটা থেকে প্রশ্নগুলি বিশ্লেষণ করে। দ্বারা
ডিফল্ট, ক্যোয়ারীগুলিকে আঙ্গুলের ছাপ দ্বারা গোষ্ঠীবদ্ধ করা হয় এবং ক্যোয়ারী সময়ের নিচের ক্রম অনুসারে রিপোর্ট করা হয়
(অর্থাৎ প্রথমে ধীরগতির প্রশ্ন)। যদি কোন "FILES" না দেওয়া হয়, টুলটি "STDIN" পড়ে। দ্য
ঐচ্ছিক "DSN" নির্দিষ্ট বিকল্পগুলির জন্য ব্যবহৃত হয় যেমন "--sence" এবং "--পর্যন্ত"।

"slow.log" থেকে ধীরগতির প্রশ্নগুলি রিপোর্ট করুন:

pt-query-digest slow.log

হোস্ট 1 এ প্রসেসলিস্ট থেকে ধীরগতির প্রশ্নগুলি রিপোর্ট করুন:

pt-query-digest --processlist h=host1

টিসিপিপিডাম্প দিয়ে মাইএসকিউএল প্রোটোকল ডেটা ক্যাপচার করুন, তারপরে সবচেয়ে ধীরগতির প্রশ্নের প্রতিবেদন করুন:

tcpdump -s 65535 -x -nn -q -tttt -i যেকোনো -c 1000 পোর্ট 3306 > mysql.tcp.txt

pt-query-digest --type tcpdump mysql.tcp.txt

পরবর্তী পর্যালোচনা এবং প্রবণতা বিশ্লেষণের জন্য "slow.log" থেকে host2-তে ক্যোয়ারী ডেটা সংরক্ষণ করুন:

pt-query-digest --review h=host2 --no-report slow.log

ঝুঁকি


পারকোনা টুলকিট পরিপক্ক, বাস্তব জগতে প্রমাণিত, এবং ভালভাবে পরীক্ষিত, তবে সমস্ত ডাটাবেস
সরঞ্জামগুলি সিস্টেম এবং ডাটাবেস সার্ভারের জন্য ঝুঁকি তৈরি করতে পারে। এই টুল ব্যবহার করার আগে,
অনুগ্রহ:

· টুলের ডকুমেন্টেশন পড়ুন

· টুলটির পরিচিত "বাগস" পর্যালোচনা করুন

· একটি নন-প্রোডাকশন সার্ভারে টুলটি পরীক্ষা করুন

আপনার প্রোডাকশন সার্ভারের ব্যাকআপ নিন এবং ব্যাকআপগুলি যাচাই করুন৷

বর্ণনাঃ


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

ক্যোয়ারী বিশ্লেষণ হল একটি সর্বোত্তম-অভ্যাস যা ঘন ঘন করা উচিত। এটি সহজ করার জন্য,
pt-query-digest-এর দুটি বৈশিষ্ট্য রয়েছে: ক্যোয়ারী রিভিউ ("--পর্যালোচনা") এবং ক্যোয়ারী ইতিহাস
("---ইতিহাস")। যখন "--পর্যালোচনা" বিকল্পটি ব্যবহার করা হয়, তখন সমস্ত অনন্য ক্যোয়ারী a এ সংরক্ষিত হয়
তথ্যশালা. যখন টুলটি "--পর্যালোচনা" দিয়ে আবার চালানো হয়, তখন ক্যোয়ারীগুলিকে পর্যালোচনা করা হিসেবে চিহ্নিত করা হয়
প্রতিবেদনে ডাটাবেস মুদ্রিত হয় না। এটি নতুন প্রশ্নগুলিকে হাইলাইট করে যা হওয়া দরকার৷
পর্যালোচনা করা হয়েছে। যখন "--history" বিকল্পটি ব্যবহার করা হয়, তখন ক্যোয়ারী মেট্রিক্স (কোয়েরি সময়, লক সময়,
ইত্যাদি) প্রতিটি অনন্য প্রশ্নের জন্য ডাটাবেসে সংরক্ষিত হয়। প্রতিবার টুলটি দিয়ে চালানো হয়
"--ইতিহাস", আরো ঐতিহাসিক তথ্য সংরক্ষণ করা হয় যা প্রবণতা এবং বিশ্লেষণ করতে ব্যবহার করা যেতে পারে
সময়ের সাথে প্রশ্নের কর্মক্ষমতা।

বৈশিষ্ট্যাবলী


pt-query-digest ইভেন্টগুলির উপর কাজ করে, যেগুলিকে কী-মান জোড়ার একটি সংগ্রহ বলা হয়
গুণাবলী আপনি এখনই বেশিরভাগ বৈশিষ্ট্য চিনতে পারবেন: "Query_time",
"লক_টাইম", ইত্যাদি। আপনি শুধু একটি ধীর লগ দেখতে পারেন এবং তাদের দেখতে পারেন. যাইহোক, আছে
কিছু যা ধীর লগে বিদ্যমান নেই, এবং ধীর লগে আসলে বিভিন্ন ধরণের অন্তর্ভুক্ত থাকতে পারে
বৈশিষ্ট্যগুলির (উদাহরণস্বরূপ, আপনার কাছে পারকোনা প্যাচগুলির সাথে একটি সার্ভার থাকতে পারে)।

সাধারণ এবং একটি তালিকার জন্য এই ডকুমেন্টেশনের শেষের কাছে "ATTRIBUTES REFERENCE" দেখুন
"--টাইপ" নির্দিষ্ট বৈশিষ্ট্য। এই গুণাবলী সঙ্গে একটি পরিচিতি জন্য প্রয়োজন
"--filter", "--ignore-attributes" এবং অন্যান্য বৈশিষ্ট্য-সম্পর্কিত বিকল্পগুলির সাথে কাজ করা।

"--ফিল্টার" এর সৃজনশীল ব্যবহারের সাথে, আপনি বিদ্যমান থেকে উদ্ভূত নতুন বৈশিষ্ট্য তৈরি করতে পারেন
গুণাবলী উদাহরণস্বরূপ, পরীক্ষার জন্য "সারি_অনুপাত" নামে একটি বৈশিষ্ট্য তৈরি করা
"সারি_প্রেরিত" থেকে "সারি_পরীক্ষা করা" এর অনুপাত, একটি ফিল্টার নির্দিষ্ট করুন যেমন:

--filter '($event->{Row_ratio} = $event->{Rows_sent} / ($event->{Rows_examined})) && 1'

একটি বৈধ এক-লাইন সিনট্যাক্স তৈরি করতে "&& 1" কৌশলটি প্রয়োজন যা সর্বদা সত্য, এমনকি যদি
অ্যাসাইনমেন্ট মিথ্যা মূল্যায়ন ঘটবে. নতুন বৈশিষ্ট্য স্বয়ংক্রিয়ভাবে প্রদর্শিত হবে
আউটপুট:

# সারি অনুপাত 1.00 0.00 1 0.50 1 0.71 0.50

এইভাবে তৈরি করা বৈশিষ্ট্যগুলি "--অর্ডার-বাই" বা প্রয়োজনীয় যেকোন বিকল্পের জন্য নির্দিষ্ট করা যেতে পারে
একটি বৈশিষ্ট্য

আউটপুট


ডিফল্ট "--আউটপুট" হল একটি ক্যোয়ারী বিশ্লেষণ রিপোর্ট। "--[নো]রিপোর্ট" বিকল্পটি নিয়ন্ত্রণ করে
এই রিপোর্ট ছাপা হোক বা না হোক। কখনও কখনও আপনি সমস্ত প্রশ্ন পার্স করতে চাইতে পারেন
কিন্তু রিপোর্ট দমন করুন, উদাহরণস্বরূপ "--পর্যালোচনা" বা "--ইতিহাস" ব্যবহার করার সময়।

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

এখানে বর্ণিত আউটপুট "--report-format" দ্বারা নিয়ন্ত্রিত হয়। এই বিকল্পটি আপনাকে অনুমতি দেয়
কি প্রিন্ট করতে হবে এবং কি ক্রমে উল্লেখ করুন। ডিফল্ট অর্ডারে ডিফল্ট আউটপুট হয়
এখানে বর্ণনা করা হয়েছে।

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

এই ঘটনা উপর প্রতিক্রিয়া সময় প্রোফাইল অনুসরণ. এটি একটি অত্যন্ত সংক্ষিপ্ত
নিম্নলিখিত বিশদ ক্যোয়ারী রিপোর্টে অনন্য ইভেন্টগুলি দেখুন। এটা ধারণ করে
নিম্নলিখিত কলাম:

কলাম অর্থ
================================================ =====================
র‌্যাঙ্ক বিশ্লেষণ করা প্রশ্নের সমগ্র সেটের মধ্যে কোয়েরির র‌্যাঙ্ক
ক্যোয়ারী আইডি কোয়েরির ফিঙ্গারপ্রিন্ট
প্রতিক্রিয়া সময় মোট প্রতিক্রিয়া সময়, এবং সামগ্রিক মোট শতাংশ
কল এই ক্যোয়ারীটি কতবার সম্পাদিত হয়েছে
R/Call প্রতি সম্পাদনের গড় প্রতিক্রিয়া সময়
V/M প্রতিক্রিয়া সময়ের পার্থক্য থেকে গড় অনুপাত
আইটেম পাতিত প্রশ্ন

একটি চূড়ান্ত লাইন যার র‍্যাঙ্ক MISC হিসাবে দেখানো হয়েছে সেই প্রশ্নের সমষ্টিগত পরিসংখ্যান রয়েছে যা
"--সীমা" এবং "--outliers" এর মত বিকল্পগুলির কারণে প্রতিবেদনে অন্তর্ভুক্ত করা হয়নি। জন্য
প্রকরণ-থেকে-মান অনুপাতের বিশদ বিবরণ, অনুগ্রহ করে দেখুন
http://en.wikipedia.org/wiki/Index_of_dispersion.

এর পরে, বিস্তারিত ক্যোয়ারী রিপোর্ট মুদ্রিত হয়। প্রতিটি প্রশ্ন একটি অনুচ্ছেদে প্রদর্শিত হয়। এখানে একটি
নমুনা, সামান্য রিফর্ম্যাট করা হয়েছে তাই 'perldoc' একটি টার্মিনালে লাইন মোড়ানো হবে না। দ্য
নিম্নলিখিত সব একটি অনুচ্ছেদ হবে, কিন্তু আমরা তা ভাষ্যের জন্য ভেঙে দেব।

# প্রশ্ন 2: 0.01 QPS, 0.02x conc, ID 0xFDEA8D2993C9CAF3 বাইট 160665 এ

এই লাইনটি দ্বারা নির্দিষ্ট করা বাছাই ক্রমে প্রশ্নের অনুক্রমিক সংখ্যা সনাক্ত করে
"-অর্ডার-বাই"। তারপর প্রতি সেকেন্ডে প্রশ্ন আছে, এবং এর জন্য আনুমানিক সঙ্গতি
এই ক্যোয়ারী (টাইমস্প্যান এবং মোট Query_time এর একটি ফাংশন হিসাবে গণনা করা হয়)। পরের আছে
একটি ক্যোয়ারী আইডি। এই আইডিটি ডাটাবেসের চেকসামের একটি হেক্স সংস্করণ, যদি আপনি হন
"--পর্যালোচনা" ব্যবহার করে। আপনি একটি দিয়ে ডাটাবেস থেকে পর্যালোচনা করা প্রশ্নের বিবরণ নির্বাচন করতে পারেন
"SELECT .... WHERE checksum=0xFDEA8D2993C9CAF3" এর মত প্রশ্ন।

আপনি যদি প্রতিবেদনটি তদন্ত করছেন এবং একটি নির্দিষ্ট প্রতিটি নমুনা মুদ্রণ করতে চান
ক্যোয়ারী, তারপর নিম্নলিখিত "--ফিল্টার" সহায়ক হতে পারে:

pt-query-digest slow.log \
--নো-রিপোর্ট \
--আউটপুট স্লোলগ \
--ফিল্টার '$event->{আঙুলের ছাপ} \
&& make_checksum($event->{fingerprint}) eq "FDEA8D2993C9CAF3"'

লক্ষ্য করুন যে আপনাকে অবশ্যই চেকসাম থেকে "0x" উপসর্গটি মুছে ফেলতে হবে।

অবশেষে, যদি আপনি লগ ফাইলে প্রশ্নের একটি নমুনা খুঁজে পেতে চান, সেখানে বাইট আছে
অফসেট যেখানে আপনি দেখতে পারেন। (এতে কিছু অসঙ্গতির কারণে এটি সর্বদা সঠিক নয়
ধীর লগ বিন্যাস, কিন্তু এটি সাধারণত সঠিক।) অবস্থানটি সবচেয়ে খারাপ নমুনাকে বোঝায়, যা
আমরা নীচের সম্পর্কে আরও দেখতে পাব।

পরবর্তী এই শ্রেণীর প্রশ্নের মেট্রিক্সের সারণী।

# pct মোট সর্বনিম্ন গড় 95% stddev মধ্যম
# গণনা 0 2
# কার্যকরী সময় 13 1105s 552s 554s 553s 554s 2s 553s
# লক টাইম 0 216us 99us 117us 108us 117us 12us 108us
# সারি পাঠানো হয়েছে 20 6.26M 3.13M 3.13M 3.13M 3.13M 12.73 3.13M
# সারি পরীক্ষা 0 6.26M 3.13M 3.13M 3.13M 3.13M 12.73 3.13M

প্রথম লাইনটি টেবিলের জন্য কলাম হেডার। শতাংশ হল শতাংশের শতাংশ
পুরো বিশ্লেষণ চালানোর জন্য মোট, এবং মোট হল নির্দিষ্ট করা প্রকৃত মান
মেট্রিক উদাহরণস্বরূপ, এই ক্ষেত্রে আমরা দেখতে পাচ্ছি যে ক্যোয়ারীটি 2 বার কার্যকর হয়েছে, যা
ফাইলের মোট প্রশ্নের 13%। সর্বনিম্ন, সর্বোচ্চ এবং গড় কলামগুলি স্ব-
ব্যাখ্যামূলক 95% কলাম 95 তম শতাংশ দেখায়; 95% মান বা এর থেকে কম
এই মানের সমান। মানক বিচ্যুতি আপনাকে দেখায় যে মানগুলি কতটা শক্তভাবে গোষ্ঠীবদ্ধ।
প্রমিত বিচ্যুতি এবং মাঝামাঝি উভয়ই 95তম শতাংশ থেকে গণনা করা হয়, বাতিল করে
অত্যন্ত বড় মান.

stddev, মধ্যমা এবং 95th পার্সেন্টাইল পরিসংখ্যান আনুমানিক। সঠিক পরিসংখ্যান
প্রতিটি মান দেখা, বাছাই করা এবং সেগুলির উপর কিছু গণনা করা প্রয়োজন। এটি ব্যবহার করে
অনেক স্মৃতি। এটি এড়াতে, আমরা 1000টি বালতি রাখি, যার প্রতিটি একটির চেয়ে 5% বড়
আগে, .000001 থেকে একটি খুব বড় সংখ্যা পর্যন্ত। যখন আমরা একটি মান দেখি তখন আমরা বৃদ্ধি পাই
যে বালতিতে এটি পড়ে। এইভাবে আমরা প্রতি শ্রেণীর প্রশ্নের জন্য মেমরি স্থির করেছি। দ্য
অপূর্ণতা হল অপূর্ণতা, যা সাধারণত 5 শতাংশ পরিসরে পড়ে।

পরবর্তীতে আমাদের কাছে ব্যবহারকারীদের পরিসংখ্যান, ডেটাবেস এবং প্রশ্নের জন্য সময়সীমা রয়েছে।

# ব্যবহারকারী 1 ব্যবহারকারী1
# ডাটাবেস 2 db1(২০১১), db2(1)
# সময়সীমা 2008-11-26 04:55:18 থেকে 2008-11-27 00:15:15

ব্যবহারকারী এবং ডাটাবেসগুলিকে স্বতন্ত্র মানের গণনা হিসাবে দেখানো হয়, মান দ্বারা অনুসরণ করা হয়।
যদি শুধুমাত্র একটি থাকে তবে এটি একা দেখানো হয়; যদি অনেকগুলি থাকে, আমরা প্রত্যেকটিকে সর্বাধিক দেখাই৷
ঘন ঘন, এটি প্রদর্শিত বার সংখ্যা দ্বারা অনুসরণ.

# প্রশ্ন_সময় বিতরণ
# 1us
# 10us
# 100us
# 1 মি
# 10ms #####
#100ms ####################
#1s ##########
# 10s+

সঞ্চালনের সময়গুলি সময় ক্লাস্টারিংয়ের লগারিদমিক চার্ট দেখায়। প্রতিটি প্রশ্ন এক মধ্যে যায়
"বালতি" এবং গণনা করা হয়। বালতি দশের ক্ষমতা। প্রথম বালতি হয়
"একক মাইক্রোসেকেন্ড পরিসরে" সমস্ত মান -- অর্থাৎ, 10us-এর কম। দ্বিতীয়টি হল
"দশ মাইক্রোসেকেন্ড," যা 10us থেকে (কিন্তু অন্তর্ভুক্ত নয়) 100us পর্যন্ত; এবং তাই
চার্ট করা অ্যাট্রিবিউট "--report-histogram" উল্লেখ করে পরিবর্তন করা যেতে পারে কিন্তু সীমাবদ্ধ
সময়-ভিত্তিক বৈশিষ্ট্য।

# টেবিল
# টেবিলের স্থিতি দেখান যেমন 'টেবিল১'\জি
# টেবিল তৈরি করুন `টেবিল১`\G দেখান
# ব্যাখ্যা করা
টেবিল 1\G থেকে * নির্বাচন করুন

এই বিভাগটি একটি সুবিধা: আপনি যদি ক্যোয়ারীগুলিকে অপ্টিমাইজ করার চেষ্টা করছেন যা আপনি দেখতে পাচ্ছেন৷
ধীর লগ, আপনি সম্ভবত টেবিল গঠন এবং আকার পরীক্ষা করতে চান. এগুলো কপি-এবং-
পেস্ট-প্রস্তুত কমান্ড যে করতে.

অবশেষে, আমরা এই শ্রেণীর প্রশ্নের নমুনা দেখতে পাই। এটি একটি এলোমেলো নয়
নমুনা প্রদত্ত বাছাই ক্রম অনুসারে এটি সবচেয়ে খারাপ কাজটি করেছে
"-অর্ডার-বাই"। আপনি সাধারণত এটির ঠিক আগে একটি মন্তব্য করা "# EXPLAIN" লাইন দেখতে পাবেন, তাই আপনি
এর ব্যাখ্যা পরিকল্পনা পরীক্ষা করার জন্য ক্যোয়ারীটি কপি-পেস্ট করতে পারে। কিন্তু অ-নির্বাচন প্রশ্নের জন্য যে
করা সম্ভব নয়, তাই টুলটি কোয়েরিটিকে মোটামুটি সমতুল্য রূপান্তর করার চেষ্টা করে
ক্যোয়ারী নির্বাচন করুন, এবং নীচে যোগ করুন.

আপনি লগে এই নমুনা ইভেন্টটি খুঁজে পেতে চাইলে, উপরে উল্লিখিত অফসেট ব্যবহার করুন, এবং
নিম্নলিখিত মত কিছু:

tail -c + /path/to/file | মাথা

এছাড়াও দেখুন "--report-format"।

প্রশ্ন পর্যালোচনা


একটি ক্যোয়ারী "--রিভিউ" হল বিশ্লেষণ করা সমস্ত ক্যোয়ারী আঙ্গুলের ছাপ সংরক্ষণ করার প্রক্রিয়া। এই
বিভিন্ন সুবিধা আছে:

· আপনি প্রশ্নের ক্লাসে মেটাডেটা যোগ করতে পারেন, যেমন ফলো-আপের জন্য চিহ্নিত করা, যোগ করা
প্রশ্নগুলির নোট, অথবা আপনার সমস্যা ট্র্যাকিং সিস্টেমের জন্য একটি ইস্যু আইডি দিয়ে চিহ্নিত করা।

· আপনি পরবর্তী রানগুলিতে সঞ্চিত মানগুলি উল্লেখ করতে পারেন যাতে আপনি জানতে পারবেন যে আপনি করেছেন কিনা
আগে একটি প্রশ্ন দেখেছি। এটি আপনাকে সদৃশ কাজ কমাতে সাহায্য করতে পারে।

· আপনি ঐতিহাসিক তথ্য যেমন সারি গণনা, ক্যোয়ারী বার এবং সাধারণত সংরক্ষণ করতে পারেন
রিপোর্টে আপনি যা দেখতে পারেন।

এই বৈশিষ্ট্যটি ব্যবহার করতে, আপনি "--পর্যালোচনা" বিকল্পের সাথে pt-query-digest চালান। এটা সংরক্ষণ করা হবে
আপনার নির্দিষ্ট করা টেবিলে আঙ্গুলের ছাপ এবং অন্যান্য তথ্য। পরের বার আপনি এটি চালান
একই বিকল্পের সাথে, এটি নিম্নলিখিতগুলি করবে:

· এটি আপনাকে এমন প্রশ্ন দেখাবে না যা আপনি ইতিমধ্যে পর্যালোচনা করেছেন। একটি প্রশ্ন হিসাবে বিবেচিত হয়
আপনি যদি "reviewed_by" কলামের জন্য একটি মান সেট করে থাকেন তাহলে ইতিমধ্যেই পর্যালোচনা করা হয়েছে৷ (যদি তুমি চাও
আপনি ইতিমধ্যে পর্যালোচনা করেছেন এমন প্রশ্নগুলি দেখুন, "--report-all" বিকল্পটি ব্যবহার করুন।)

· যে প্রশ্নগুলি আপনি পর্যালোচনা করেছেন এবং আউটপুটে প্রদর্শিত হবে না, তাতে ফাঁক সৃষ্টি করবে৷
প্রতিটি অনুচ্ছেদের প্রথম লাইনে ক্যোয়ারী নম্বর ক্রম। এবং মান আপনি করেছি
"--সীমা" এর জন্য নির্দিষ্ট করা এখনও সম্মানিত হবে। তাই যদি আপনি সব প্রশ্ন পর্যালোচনা করেছেন
শীর্ষ 10 এবং আপনি শীর্ষ 10 জন্য জিজ্ঞাসা, আপনি আউটপুট কিছুই দেখতে পাবেন না.

· আপনি যদি ইতিমধ্যে পর্যালোচনা করা প্রশ্নগুলি দেখতে চান তবে আপনি নির্দিষ্ট করতে পারেন৷
"-প্রতিবেদন-সমস্ত"। তারপর আপনি স্বাভাবিক বিশ্লেষণ আউটপুট দেখতে পাবেন, কিন্তু আপনি দেখতে পাবেন
রিভিউ টেবিল থেকে তথ্য, এক্সিকিউশন টাইম গ্রাফের ঠিক নিচে। উদাহরণ স্বরূপ,

# তথ্য পর্যালোচনা করুন
# মন্তব্য: সত্যিই খারাপ IN() সাবকুয়েরি, শীঘ্রই ঠিক করুন!
# প্রথম_দেখা: 2008-12-01 11:48:57
#জিরা_টিকিটঃ 1933
# শেষ_দেখা: 2008-12-18 11:49:07
# অগ্রাধিকার: উচ্চ
#পর্যালোচিত_দ্বারা: xaprb
# পর্যালোচনা করা হয়েছে: 2008-12-18 15:03:11

এই মেটাডেটা দরকারী কারণ, আপনি আপনার প্রশ্নগুলি বিশ্লেষণ করার সাথে সাথে আপনি আপনার মন্তব্য পাবেন৷
রিপোর্টের সাথে একত্রিত করা হয়েছে।

আঙুলের ছাপ


একটি ক্যোয়ারী ফিঙ্গারপ্রিন্ট হল একটি কোয়েরির বিমূর্ত রূপ, যা গ্রুপ করা সম্ভব করে
একই ধরনের প্রশ্ন একসাথে। একটি ক্যোয়ারী বিমূর্ত করা আক্ষরিক মান সরিয়ে দেয়, স্বাভাবিক করে তোলে
হোয়াইটস্পেস, এবং তাই। উদাহরণস্বরূপ, এই দুটি প্রশ্ন বিবেচনা করুন:

ব্যবহারকারীর কাছ থেকে নাম, পাসওয়ার্ড নির্বাচন করুন আইডি='12823';
ব্যবহারকারী থেকে নাম, পাসওয়ার্ড নির্বাচন করুন
যেখানে id=5;

যে প্রশ্ন দুটি আঙ্গুলের ছাপ হবে

ব্যবহারকারীর কাছ থেকে নাম, পাসওয়ার্ড নির্বাচন করুন যেখানে id=?

একবার ক্যোয়ারীটির আঙ্গুলের ছাপ জানা হয়ে গেলে, আমরা তারপরে একটি প্রশ্ন সম্পর্কে কথা বলতে পারি যেন এটি
সমস্ত অনুরূপ প্রশ্নের প্রতিনিধিত্ব করে।

"pt-query-digest" যা করে তা SQL-এ GROUP BY স্টেটমেন্টের সাথে সাদৃশ্যপূর্ণ। (তবে নোট করুন যে
"একাধিক কলাম" একটি বহু-কলাম গ্রুপিং সংজ্ঞায়িত করে না; এটি একাধিক রিপোর্ট সংজ্ঞায়িত করে!)
যদি আপনার কমান্ড-লাইনটি এইরকম দেখায়,

pt-query-digest \
আঙ্গুলের ছাপ দ্বারা গ্রুপ
--order-by Query_time:sum \
--সীমা 10 \
slow.log

সংশ্লিষ্ট ছদ্ম-এসকিউএল এই মত দেখায়:

সবচেয়ে খারাপ নির্বাচন করুন (Query_time দ্বারা প্রশ্ন), SUM(Query_time), ...
/path/to/slow.log থেকে
আঙুলের ছাপ দ্বারা গ্রুপ (কোয়েরি)
SUM(Query_time) DESC দ্বারা অর্ডার করুন
সীমা 10

আপনি "পাতন" মানটিও ব্যবহার করতে পারেন, যা এক ধরনের সুপার-ফিঙ্গারপ্রিন্ট। দেখা
আরো জন্য "--গ্রুপ-বাই"।

ক্যোয়ারী ফিঙ্গারপ্রিন্টিং অনেক বিশেষ ক্ষেত্রে মিটমাট করে, যা প্রয়োজনীয় প্রমাণিত হয়েছে
বাস্তব জগতে. উদাহরণস্বরূপ, 5 লিটারেল সহ একটি "IN" তালিকা সত্যিই 4 সহ একটির সমতুল্য৷
আক্ষরিক, তাই আক্ষরিক তালিকা একটি একক ধ্বসে পড়ে। যদি আপনি কিছু খুঁজে পান যে
সঠিকভাবে ফিঙ্গারপ্রিন্ট করা হয়নি, অনুগ্রহ করে একটি পুনরুত্পাদনযোগ্য টেস্ট কেস সহ একটি বাগ রিপোর্ট জমা দিন৷

এখানে আঙ্গুলের ছাপের সময় রূপান্তরের একটি তালিকা রয়েছে, যা সম্পূর্ণ নাও হতে পারে:

mysqldump থেকে সমস্ত SELECT কোয়েরি একত্রে গোষ্ঠীভুক্ত করুন, এমনকি যদি তারা ভিন্ন ভিন্ন হয়
টেবিল একই pt-table-checksum থেকে সমস্ত প্রশ্নের ক্ষেত্রে প্রযোজ্য।

· বহু-মূল্যের INSERT বিবৃতিকে একটি একক সংক্ষিপ্ত করুন মান() তালিকা।

· মন্তব্য ফালা.

ইউএসই স্টেটমেন্টে ডাটাবেসগুলিকে অ্যাবস্ট্রাক্ট করুন, তাই সমস্ত ইউএসই স্টেটমেন্ট একসাথে গ্রুপ করা হয়।

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

· সমস্ত হোয়াইটস্পেসকে একটি একক স্থানে সঙ্কুচিত করুন।

· সম্পূর্ণ ক্যোয়ারী ছোট হাতের অক্ষরে লিখুন।

এর ভিতরে সমস্ত আক্ষরিক প্রতিস্থাপন করুন ভিতরে() এবং মান() একটি একক স্থানধারক সহ তালিকা,
কার্ডিনালিটি নির্বিশেষে।

· একাধিক অভিন্ন UNION ক্যোয়ারীকে একটি একক রূপে সঙ্কুচিত করুন।

বিকল্প


এই টুলটি অতিরিক্ত কমান্ড-লাইন আর্গুমেন্ট গ্রহণ করে। "SYNOPSIS" এবং ব্যবহার পড়ুন
বিস্তারিত তথ্যের জন্য।

--আস্ক-পাস
MySQL এর সাথে সংযোগ করার সময় একটি পাসওয়ার্ডের জন্য অনুরোধ করুন।

-- বৈশিষ্ট্য- উপনাম
প্রকার: অ্যারে; ডিফল্ট: db|স্কিমা

অ্যাট্রিবিউটের তালিকা|উনাম, ইত্যাদি

কিছু বৈশিষ্ট্যের একাধিক নাম আছে, যেমন db এবং Schema। যদি কোনো ঘটনা না থাকে
প্রাথমিক বৈশিষ্ট্য, pt-query-digest একটি উপনাম বৈশিষ্ট্যের সন্ধান করে। যদি এটি একটি খুঁজে পায়
alias, এটি alias অ্যাট্রিবিউটের মান দিয়ে প্রাথমিক অ্যাট্রিবিউট তৈরি করে এবং সরিয়ে দেয়
উপনাম বৈশিষ্ট্য।

ইভেন্টের প্রাথমিক বৈশিষ্ট্য থাকলে, সমস্ত উপনাম বৈশিষ্ট্য মুছে ফেলা হয়।

এটি ইভেন্টের বৈশিষ্ট্যগুলিকে সরল করতে সাহায্য করে যাতে, উদাহরণস্বরূপ, সেখানে রিপোর্ট করা হবে না৷
ডিবি এবং স্কিমা উভয়ের জন্য লাইন।

-- বৈশিষ্ট্য-মান-সীমা
প্রকার: int; ডিফল্ট: 4294967296

অ্যাট্রিবিউট মানগুলির জন্য একটি বিবেক সীমা৷

এই বিকল্পটি ধীর লগিং কার্যকারিতার বাগগুলির সাথে ডিল করে যা এর জন্য বড় মান সৃষ্টি করে
গুণাবলী যদি অ্যাট্রিবিউটের মান এর থেকে বড় হয়, তাহলে শেষ দেখা মান
যে শ্রেণীর প্রশ্নের পরিবর্তে ব্যবহার করা হয়।

-- অক্ষর সেট
সংক্ষিপ্ত রূপ: -ক; প্রকার: স্ট্রিং

ডিফল্ট অক্ষর সেট। মানটি utf8 হলে, STDOUT-এ পার্লের বিনমোডকে utf8-এ সেট করে,
DBD::mysql-এ mysql_enable_utf8 বিকল্পটি পাস করে এবং SET NAMES UTF8 এর পরে চালায়
MySQL এর সাথে সংযোগ করা হচ্ছে। অন্য কোনো মান UTF8 স্তর ছাড়াই STDOUT-এ বিনমোড সেট করে,
এবং MySQL এর সাথে সংযোগ করার পরে SET NAMES চালায়।

--config
প্রকার: অ্যারে

কনফিগার ফাইলের এই কমা দ্বারা পৃথক করা তালিকা পড়ুন; নির্দিষ্ট করা হলে, এটি অবশ্যই প্রথম হতে হবে
কমান্ড লাইনে বিকল্প।

--[না]কন্টিনিউ-অন-এরর
ডিফল্ট: হ্যাঁ

কোনো ত্রুটি থাকলেও পার্সিং চালিয়ে যান। টুল চিরকাল চলতে থাকবে না: এটা
কোনো প্রক্রিয়া 100টি ত্রুটির কারণ হলে তা বন্ধ হয়ে যায়, এই ক্ষেত্রে সম্ভবত একটি বাগ আছে
টুল বা ইনপুট অবৈধ।

--[না]তৈরি-ইতিহাস-সারণী
ডিফল্ট: হ্যাঁ

"--ইতিহাস" টেবিলটি তৈরি করুন যদি এটি বিদ্যমান না থাকে।

এই বিকল্পটি "--history" দ্বারা নির্দিষ্ট করা টেবিলটিকে ডিফল্টের সাথে তৈরি করে
"--ইতিহাস" এর জন্য ডকুমেন্টেশনে দেখানো কাঠামো।

--[না]তৈরি-পর্যালোচনা-সারণী
ডিফল্ট: হ্যাঁ

"--পর্যালোচনা" টেবিলটি তৈরি করুন যদি এটি বিদ্যমান না থাকে।

এই বিকল্পটি "--review" দ্বারা নির্দিষ্ট করা টেবিলটিকে ডিফল্টের সাথে তৈরি করে
"--পর্যালোচনা" এর জন্য ডকুমেন্টেশনে দেখানো কাঠামো।

--ডেমনাইজ করা
পটভূমিতে কাঁটাচামচ করুন এবং শেল থেকে বিচ্ছিন্ন করুন। শুধুমাত্র POSIX অপারেটিং সিস্টেম।

--তথ্যশালা
সংক্ষিপ্ত রূপ: -D; প্রকার: স্ট্রিং

এই ডাটাবেসের সাথে সংযোগ করুন।

--ডিফল্ট-ফাইল
সংক্ষিপ্ত রূপ: -F; প্রকার: স্ট্রিং

প্রদত্ত ফাইল থেকে শুধুমাত্র mysql অপশন পড়ুন। আপনাকে অবশ্যই একটি পরম পথের নাম দিতে হবে।

--এমবেডেড-অ্যাট্রিবিউট
প্রকার: অ্যারে

কোয়েরিতে এমবেড করা ছদ্ম-অ্যাট্রিবিউট ক্যাপচার করার জন্য দুটি পার্ল রেজেক্স প্যাটার্ন।

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

উদাহরণস্বরূপ, ধরুন আপনার ক্যোয়ারী নিচের মত দেখাচ্ছে:

ব্যবহারকারীদের থেকে * নির্বাচন করুন -- ফাইল: /login.php, লাইন: 493;

আপনি নিম্নলিখিত বিকল্পের সাথে pt-query-digest চালাতে পারেন:

pt-query-digest --embedded-attributes ' -- .*','(\w+): ([^\,]+)'

প্রথম নিয়মিত অভিব্যক্তি পুরো মন্তব্যটি ক্যাপচার করে:

"- ফাইল: /login.php, লাইন: 493;"

দ্বিতীয়টি এটিকে অ্যাট্রিবিউট-মান জোড়ায় বিভক্ত করে এবং ইভেন্টে যোগ করে:

অ্যাট্রিবিউট মান
===================
ফাইল /login.php
লাইন 493

বিঃদ্রঃ: রেজেক্স প্যাটার্নের সমস্ত কমা অবশ্যই \ অন্যথায় প্যাটার্নের সাথে এস্কেপ করা উচিত
ভেঙ্গে যাবে

--প্রত্যাশিত-পরিসীমা
প্রকার: অ্যারে; ডিফল্ট: 5,10

আইটেম ব্যাখ্যা করুন যখন প্রত্যাশার চেয়ে বেশি বা কম থাকে।

"--[কোন] প্রতিবেদন" দ্বারা প্রদত্ত প্রতিবেদনে প্রত্যাশিত আইটেমের সংখ্যা নির্ধারণ করে,
"--সীমা" এবং "--outliers" দ্বারা নিয়ন্ত্রিত। বেশি বা কম আইটেম থাকলে
রিপোর্ট, প্রত্যেকে ব্যাখ্যা করবে কেন এটি অন্তর্ভুক্ত করা হয়েছিল।

--ব্যাখ্যা করা
প্রকার: ডিএসএন

এই DSN এবং প্রিন্ট ফলাফল সহ নমুনা প্রশ্নের জন্য EXPLAIN চালান।

এটি তখনই কাজ করে যখন "--গ্রুপ-বাই" ফিঙ্গারপ্রিন্ট অন্তর্ভুক্ত করে। এটি pt-query-digest এর কারণ হয়
EXPLAIN চালান এবং রিপোর্টে আউটপুট অন্তর্ভুক্ত করুন। নিরাপত্তার জন্য, যে প্রশ্নগুলি উপস্থিত হয়৷
একটি সাবকোয়েরি আছে যা EXPLAIN কার্যকর করবে তা ব্যাখ্যা করা হবে না। যারা সাধারণত
ফর্মের "উত্পন্ন টেবিল" প্রশ্ন

নির্বাচন করুন ... থেকে ( নির্বাচন করুন .... ) der;

EXPLAIN ফলাফলগুলি ইভেন্ট রিপোর্টে সম্পূর্ণ উল্লম্ব বিন্যাস হিসাবে মুদ্রিত হয়, যা
MySQL এর মত উল্লম্ব শৈলীতে ("\G") প্রতিটি ইভেন্ট রিপোর্টের শেষে প্রদর্শিত হয়
এটা প্রিন্ট করে।

--ছাঁকনি
প্রকার: স্ট্রিং

ইভেন্টগুলি বাতিল করুন যার জন্য এই পার্ল কোডটি সত্য হয় না।

এই বিকল্পটি পার্ল কোডের একটি স্ট্রিং বা পার্ল কোড ধারণকারী একটি ফাইল যা সংকলিত হয়
একটি যুক্তি সহ একটি সাবরুটিনে: $event। এটি একটি হাশরেফ। যদি প্রদত্ত মান
একটি পঠনযোগ্য ফাইল, তারপর pt-query-digest পুরো ফাইলটি পড়ে এবং এর বিষয়বস্তু ব্যবহার করে
কোড হিসাবে। ফাইলটিতে একটি শেবাং থাকা উচিত নয় (#!/usr/bin/perl) লাইন।

কোডটি সত্য হলে, কলব্যাকের চেইন চলতে থাকে; অন্যথায় এটি শেষ হয়। দ্য
কোড হল "রিটার্ন $ইভেন্ট" ছাড়া সাবরুটিনের শেষ বিবৃতি। দ্য
সাবরুটিন টেমপ্লেট হল:

উপ { $event = শিফট; ফিল্টার করুন && $event; }

কমান্ড লাইনে দেওয়া ফিল্টারগুলি বন্ধনীর ভিতরে মোড়ানো হয় যেমন "( ফিল্টার
).
বন্ধনী ভিতরে আবৃত করা হবে না. যেভাবেই হোক, ফিল্টারটিকে অবশ্যই সিনট্যাক্টিকভাবে তৈরি করতে হবে
টেমপ্লেট দেওয়া বৈধ কোড। উদাহরণস্বরূপ, কমান্ডে দেওয়া একটি if-else শাখা
লাইন বৈধ হবে না:

--filter 'if () { } else { }' # ভুল

যেহেতু এটি কমান্ড লাইনে দেওয়া হয়েছে, if-else শাখাটি ভিতরে মোড়ানো হবে
বন্ধনী যা সিনট্যাক্টিক্যালি বৈধ নয়। তাই আরো জটিল কিছু সম্পন্ন করতে
এর মতো একটি ফাইলে কোড স্থাপন করতে হবে, উদাহরণস্বরূপ filter.txt:

আমার $event_ok; যদি (...) { $event_ok=1; } অন্য { $event_ok=0; } $event_ok

তারপর filter.txt থেকে কোড পড়ার জন্য "--filter filter.txt" উল্লেখ করুন।

ফিল্টার কোড কম্পাইল না হলে, pt-query-digest একটি ত্রুটির সাথে মারা যাবে। যদি
ফিল্টার কোড কম্পাইল করে, কোডটি করার চেষ্টা করলে রানটাইমে একটি ত্রুটি এখনও ঘটতে পারে
কিছু ভুল (যেমন প্যাটার্ন একটি অনির্ধারিত মান মেলে)। pt-query-digest করে না
কোন সুরক্ষা প্রদান তাই সাবধানে কোড!

একটি উদাহরণ ফিল্টার যা নির্বাচন বিবৃতি ছাড়া সবকিছু বাতিল করে:

--ফিল্টার '$event->{arg} =~ m/^select/i'

এটি নিম্নলিখিত মত একটি সাবরুটিনে সংকলিত হয়:

উপ { $event = শিফট; ( $event->{arg} =~ m/^select/i ) && ফেরত $event; }

কোডের পার্শ্বপ্রতিক্রিয়া থাকা অনুমোদিত ($ইভেন্ট পরিবর্তন করতে)।

সাধারণ এবং "--টাইপ" নির্দিষ্ট বৈশিষ্ট্যের তালিকার জন্য "ATTRIBUTES REFERENCE" দেখুন।

এখানে ফিল্টার কোডের আরও উদাহরণ রয়েছে:

হোস্ট/আইপি domain.com-এর সাথে মেলে
--filter '($event->{host} || $event->{ip} || "") =~ m/domain.com/'

কখনও কখনও MySQL হোস্ট লগ করে যেখানে আইপি প্রত্যাশিত হয়। অতএব, আমরা উভয় পরীক্ষা.

ব্যবহারকারী মেলে জন
--filter '($event->{user} || "") =~ m/john/'

১টির বেশি সতর্কতা
--ফিল্টার '($event->{Warning_count} || 0) > 1'

কোয়েরি সম্পূর্ণ টেবিল স্ক্যান বা সম্পূর্ণ যোগদান করে
--filter '(($event->{Full_scan} || "") eq "হ্যাঁ") || (($event->{Full_join} || "")
eq "হ্যাঁ")'

কোয়েরি ক্যাশে থেকে কোয়েরি দেওয়া হয়নি
--filter '($event->{QC_Hit} || "") eq "না"'

কোয়েরি 1 MB বা তার থেকে বড়৷
--ফিল্টার '$event->{বাইট} >= 1_048_576'

যেহেতু "--filter" আপনাকে $event পরিবর্তন করতে দেয়, আপনি এটিকে অন্যান্য জিনিস করতে ব্যবহার করতে পারেন, যেমন
নতুন বৈশিষ্ট্য তৈরি করুন। একটি উদাহরণের জন্য "ATTRIBUTES" দেখুন।

--দল দ্বারা
প্রকার: অ্যারে; ডিফল্ট: আঙ্গুলের ছাপ

গ্রুপ দ্বারা ঘটনা যা বৈশিষ্ট্য.

সাধারণভাবে, আপনি কোয়েরির যেকোন বৈশিষ্ট্যের উপর ভিত্তি করে প্রশ্নগুলিকে ক্লাসে গ্রুপ করতে পারেন,
যেমন "ব্যবহারকারী" বা "ডিবি", যা ডিফল্টরূপে আপনাকে দেখাবে কোন ব্যবহারকারী এবং কোন ডাটাবেস
সর্বাধিক "Query_time" পান। ডিফল্ট অ্যাট্রিবিউট, "ফিঙ্গারপ্রিন্ট", গ্রুপ অনুরূপ,
ক্লাসে বিমূর্ত প্রশ্ন; নীচে দেখুন এবং "ফিঙ্গারপ্রিন্ট" দেখুন।

প্রতিটি "--গ্রুপ-বাই" মানের জন্য একটি প্রতিবেদন মুদ্রিত হয় (যদি না "--নো-রিপোর্ট" দেওয়া হয়)।
অতএব, "--গ্রুপ-ব্যবহারকারী দ্বারা, ডিবি" মানে "একই ব্যবহারকারীর সাথে প্রশ্নের প্রতিবেদন এবং প্রতিবেদন
একই db সহ প্রশ্নের উপর"; এর অর্থ এই নয় যে "একই ব্যবহারকারীর সাথে প্রশ্নের প্রতিবেদন করুন
এবং db।" এছাড়াও "OUTPUT" দেখুন।

"--ক্রম-দ্বারা" একই অবস্থানে প্রতিটি মান অবশ্যই একটি সংশ্লিষ্ট মান থাকতে হবে।
যাইহোক, "--group-by" তে মান যোগ করলে স্বয়ংক্রিয়ভাবে "--order-by" মান যুক্ত হবে,
আপনার সন্তুষ্টির জন্য.

কিছু কিছু অতিরিক্ত ডেটা মাইনিং আগে ঘটতে কারণ যাদুকরী মান আছে
গ্রুপিং সঞ্চালিত হয়:

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

টেবিল
এর ফলে ইভেন্টগুলি যা টেবিল বলে মনে হয় তার জন্য পরিদর্শন করা হয় এবং তারপরে
যে দ্বারা একত্রিত. মনে রাখবেন যে দুটি বা ততোধিক টেবিল রয়েছে এমন একটি প্রশ্ন হবে
যতবার টেবিল আছে ততবার গণনা করা হয়েছে; সুতরাং দুটি টেবিলের বিপরীতে একটি যোগ গণনা করা হবে
উভয় টেবিলের বিপরীতে Query_time।

উদ্রেক করা
এটি এমন এক ধরণের সুপার-ফিঙ্গারপ্রিন্ট যা কোয়েরিগুলিকে একটি সাজেশনে পরিণত করে
তারা যা করে, যেমন " INSERT SELECT table1 table2"।

--help
সাহায্য দেখান এবং প্রস্থান করুন।

--ইতিহাস
প্রকার: ডিএসএন

প্রদত্ত টেবিলে প্রতিটি ক্যোয়ারী ক্লাসের জন্য মেট্রিক্স সংরক্ষণ করুন। pt-query-digest ক্যোয়ারী সংরক্ষণ করে
এই টেবিলে মেট্রিক্স (কোয়েরি টাইম, লক টাইম, ইত্যাদি) যাতে আপনি দেখতে পারেন কিভাবে ক্লাস করা হয়
সময়ের পরিবর্তন.

ডিফল্ট টেবিল হল "percona_schema.query_history"। ডাটাবেস (D) এবং টেবিল উল্লেখ করুন
(t) ডিফল্ট ওভাররাইড করতে DSN অপশন। ডাটাবেস এবং টেবিল স্বয়ংক্রিয়ভাবে হয়
"--no-create-history-table" নির্দিষ্ট করা না থাকলে তৈরি করা হয়েছে (দেখুন
"--[না] তৈরি-ইতিহাস-সারণী")।

pt-query-digest টেবিলের কলাম পরিদর্শন করে। টেবিল অন্তত থাকতে হবে
নিম্নলিখিত কলাম:

টেবিলের প্রশ্ন_রিভিউ_ইতিহাস তৈরি করুন (
চেকসাম বড় সাইনড নট নাল,
নমুনা পাঠ্য শূন্য নয়
);

উপরে উল্লিখিত নয় এমন কোনো কলাম পরিদর্শন করা হয় যে তারা একটি নির্দিষ্ট নামকরণ অনুসরণ করে কিনা
সম্মেলন নামটি একটি আন্ডারস্কোর দিয়ে শেষ হলে কলামটি বিশেষ
এই মানগুলির মধ্যে:

pct|avg|cnt|sum|min|max|pct_95|stddev|median|rank

যদি কলামটি সেই মানগুলির একটি দিয়ে শেষ হয়, তাহলে উপসর্গটিকে হিসাবে ব্যাখ্যা করা হয়
সেই কলামে সঞ্চয় করার জন্য ইভেন্ট অ্যাট্রিবিউট, এবং প্রত্যয়টিকে মেট্রিক হিসাবে ব্যাখ্যা করা হয়
সংরক্ষণ করা উদাহরণস্বরূপ, "Query_time_min" নামের একটি কলাম সংরক্ষণ করতে ব্যবহার করা হবে
ইভেন্টের ক্লাসের জন্য সর্বনিম্ন "Query_time"।

টেবিলে একটি প্রাথমিক কীও থাকা উচিত, তবে এটি আপনার উপর নির্ভর করে, আপনি কীভাবে তার উপর নির্ভর করে
ঐতিহাসিক তথ্য সংরক্ষণ করতে চান. আমরা ts_min এবং ts_max কলাম এবং যোগ করার পরামর্শ দিই
চেকসাম সহ প্রাথমিক কী-এর অংশ তৈরি করে। কিন্তু আপনি শুধু পারেন
একটি ts_min কলাম যোগ করুন এবং এটিকে একটি DATE টাইপ করুন, যাতে আপনি প্রতি ক্লাসের প্রশ্নের জন্য একটি সারি পাবেন
প্রতিদিন.

নিম্নলিখিত টেবিলের সংজ্ঞাটি "--[no]create-history-table"-এর জন্য ব্যবহৃত হয়:

query_history না থাকলে টেবিল তৈরি করুন (
চেকসাম বড় সাইনড নট নাল,
নমুনা পাঠ্য শূন্য নয়,
ts_min DATETIME,
ts_max DATETIME,
ts_cnt ফ্লোট,
কোয়েরি_টাইম_সম ফ্লোট,
প্রশ্ন_সময়_মিনিট ফ্লোট,
ক্যোয়ারী_টাইম_সর্বোচ্চ ফ্লোট,
Query_time_pct_95 FLOAT,
প্রশ্ন_সময়_stddev ফ্লোট,
ক্যোয়ারী_টাইম_মিডিয়ান ফ্লোট,
লক_টাইম_সম ফ্লোট,
লক_টাইম_মিনিট ফ্লোট,
লক_টাইম_সর্বোচ্চ ফ্লোট,
লক_টাইম_pct_95 ফ্লোট,
Lock_time_stddev FLOAT,
লক_টাইম_মিডিয়ান ফ্লোট,
সারি_প্রেরিত_সমষ্টি FLOAT,
সারি_প্রেরিত_মিনিট ফ্লোট,
সারি_প্রেরিত_সর্বোচ্চ ফ্লোট,
সারি_প্রেরিত_pct_95 ফ্লোট,
সারি_প্রেরিত_stddev ফ্লোট,
সারি_প্রেরিত_মাঝারি ফ্লোট,
সারি_পরীক্ষাকৃত_সমষ্টি FLOAT,
সারি_পরীক্ষা করা_মিনিট ফ্লোট,
সারি_পরীক্ষা করা_সর্বোচ্চ ফ্লোট,
সারি_পরীক্ষা করা_pct_95 FLOAT,
সারি_পরীক্ষা করা_stddev FLOAT,
সারি_পরীক্ষা করা_মাঝারি ফ্লোট,
-- পারকোনা বর্ধিত স্লোলগ বৈশিষ্ট্য
-- http://www.percona.com/docs/wiki/patches:slow_extended
সারি_প্রভাবিত_সমষ্টি FLOAT,
সারি_প্রভাবিত_মিনিট ফ্লোট,
সারি_প্রভাবিত_সর্বোচ্চ ফ্লোট,
সারি_প্রভাবিত_pct_95 ফ্লোট,
সারি_প্রভাবিত_stddev ফ্লোট,
সারি_প্রভাবিত_মাঝারি ফ্লোট,
সারি_পড়া_সমষ্টি FLOAT,
সারি_পড়া_মিনিট ফ্লোট,
সারি_পড়া_সর্বোচ্চ ফ্লোট,
সারি_পড়া_pct_95 ফ্লোট,
সারি_পড়া_stddev ফ্লোট,
সারি_পড়া_মাঝারি ফ্লোট,
মার্জ_পাস_সমফল ফ্লোট,
মার্জ_পাস_মিনিট ফ্লোট,
মার্জ_পাস_সর্বোচ্চ ফ্লোট,
মার্জ_পাস_pct_95 ফ্লোট,
মার্জ_পাস_stddev ফ্লোট,
মার্জ_পাস_মিডিয়ান ফ্লোট,
InnoDB_IO_r_ops_min FLOAT,
InnoDB_IO_r_ops_max FLOAT,
InnoDB_IO_r_ops_pct_95 FLOAT,
InnoDB_IO_r_ops_stddev FLOAT,
InnoDB_IO_r_ops_median FLOAT,
InnoDB_IO_r_bytes_min FLOAT,
InnoDB_IO_r_bytes_max FLOAT,
InnoDB_IO_r_bytes_pct_95 FLOAT,
InnoDB_IO_r_bytes_stddev FLOAT,
InnoDB_IO_r_bytes_median FLOAT,
InnoDB_IO_r_wait_min FLOAT,
InnoDB_IO_r_wait_max FLOAT,
InnoDB_IO_r_wait_pct_95 FLOAT,
InnoDB_IO_r_wait_stddev FLOAT,
InnoDB_IO_r_wait_median FLOAT,
InnoDB_rec_lock_wait_min FLOAT,
InnoDB_rec_lock_wait_max FLOAT,
InnoDB_rec_lock_wait_pct_95 FLOAT,
InnoDB_rec_lock_wait_stddev FLOAT,
InnoDB_rec_lock_wait_median FLOAT,
InnoDB_queue_wait_min FLOAT,
InnoDB_queue_wait_max FLOAT,
InnoDB_queue_wait_pct_95 FLOAT,
InnoDB_queue_wait_stddev FLOAT,
InnoDB_queue_wait_median FLOAT,
InnoDB_pages_distinct_min FLOAT,
InnoDB_pages_distinct_max FLOAT,
InnoDB_pages_distinct_pct_95 FLOAT,
InnoDB_pages_distinct_stddev FLOAT,
InnoDB_pages_distinct_median FLOAT,
-- বুলিয়ান (হ্যাঁ/না) বৈশিষ্ট্য। শুধুমাত্র cnt এবং যোগফল প্রয়োজন
-- এইটার জন্য. cnt হল কতবার অ্যাট্রিবিউট রেকর্ড করা হয়েছে,
-- এবং যোগফল হল কত বার মানটি হ্যাঁ ছিল। তাই
-- sum/cnt * 100 রেকর্ড করা সময়ের শতাংশের সমান
-- মান ছিল হ্যাঁ
QC_Hit_cnt FLOAT,
QC_Hit_sum FLOAT,
Full_scan_cnt FLOAT,
ফুল_স্ক্যান_সম ফ্লোট,
সম্পূর্ণ_যোগদান_cnt FLOAT,
সম্পূর্ণ_যোগদানের_সমষ্টি FLOAT,
Tmp_table_cnt FLOAT,
Tmp_table_sum FLOAT,
Tmp_table_on_disk_cnt FLOAT,
Tmp_table_on_disk_sum FLOAT,
Filesort_cnt FLOAT,
Filesort_sum FLOAT,
Filesort_on_disk_cnt FLOAT,
ফাইলসর্ট_অন_ডিস্ক_সম ফ্লোট,
প্রাথমিক কী (চেকসাম, ts_min, ts_max)
);

মনে রাখবেন যে আমরা শুধুমাত্র ts অ্যাট্রিবিউটের জন্য গণনা (cnt) সংরক্ষণ করি; এটা অপ্রয়োজনীয় হবে
অন্যান্য বৈশিষ্ট্যের জন্য এটি সংরক্ষণ করুন।

--হোস্ট
সংক্ষিপ্ত রূপ: -h; প্রকার: স্ট্রিং

হোস্টের সাথে সংযোগ করুন।

-- উপেক্ষা-গুণাবলী
প্রকার: অ্যারে; ডিফল্ট: arg, cmd, insert_id, ip, পোর্ট, Thread_id, টাইমস্ট্যাম্প, এক্সটাইম,
পতাকা, কী, রেস, ভ্যাল, সার্ভার_আইডি, অফসেট, এন্ড_লগ_পোস, Xid

এই গুণাবলী একত্রিত করবেন না. কিছু বৈশিষ্ট্য কোয়েরি মেট্রিক্স নয় কিন্তু মেটাডেটা
যা একত্রিত করার প্রয়োজন নেই (বা করা যাবে না)।

--উত্তরাধিকার-গুণাবলী
প্রকার: অ্যারে; ডিফল্ট: db,ts

অনুপস্থিত থাকলে, শেষ ইভেন্ট থেকে এই বৈশিষ্ট্যগুলিকে উত্তরাধিকারসূত্রে পান।

এই বিকল্পটি সেট করে যে কোন বৈশিষ্ট্যগুলি উত্তরাধিকারসূত্রে পাওয়া যায় বা ইভেন্টগুলির জন্য এগিয়ে নিয়ে যাওয়া হয়
তাদের নেই উদাহরণস্বরূপ, যদি একটি ইভেন্টে "foo" এর সমান db বৈশিষ্ট্য থাকে তবে
পরবর্তী ইভেন্টে db অ্যাট্রিবিউট নেই, তারপর এটি তার db অ্যাট্রিবিউটের জন্য "foo" উত্তরাধিকারসূত্রে পায়।

--অন্তর
প্রকার: float; ডিফল্ট: .1

কত ঘন ঘন প্রসেসলিস্টে ভোট দিতে হবে, সেকেন্ডে।

-- পুনরাবৃত্তি
প্রকার: int; ডিফল্ট: 1

সংগ্রহ এবং প্রতিবেদন চক্রের মাধ্যমে কতবার পুনরাবৃত্তি করতে হবে। যদি 0, পুনরাবৃত্তি করুন
অনন্ত প্রতিটি পুনরাবৃত্তি "--রান-টাইম" সময়ের জন্য চলে। একটি পুনরাবৃত্তি হয়
সাধারণত সময়ের একটি পরিমাণ দ্বারা নির্ধারিত হয় এবং একটি প্রতিবেদন মুদ্রিত হয় যখন সেই পরিমাণ
সময় অতিবাহিত হয় "--রান-টাইম-মোড" "ব্যবধান" দিয়ে, পরিবর্তে একটি ব্যবধান নির্ধারিত হয়
"--রান-টাইম" দিয়ে আপনি যে ব্যবধান সময় নির্দিষ্ট করেছেন। "--রান-টাইম" এবং দেখুন
আরো তথ্যের জন্য "--রান-টাইম-মোড"।

--সীমা
প্রকার: অ্যারে; ডিফল্ট: 95%:20

প্রদত্ত শতাংশ বা গণনা আউটপুট সীমিত.

যদি যুক্তি একটি পূর্ণসংখ্যা হয়, শুধুমাত্র শীর্ষ N খারাপ প্রশ্ন রিপোর্ট করুন. যদি তর্ক হয়
"%" চিহ্ন দ্বারা অনুসরণ করা একটি পূর্ণসংখ্যা, সবচেয়ে খারাপ প্রশ্নের শতাংশের রিপোর্ট করুন।
যদি শতাংশ একটি কোলন এবং অন্য পূর্ণসংখ্যা দ্বারা অনুসরণ করা হয়, তাহলে শীর্ষে রিপোর্ট করুন
শতাংশ বা সেই পূর্ণসংখ্যা দ্বারা নির্দিষ্ট করা সংখ্যা, যেটি প্রথমে আসে।

মানটি আসলে একটি কমা দ্বারা পৃথক করা মানগুলির বিন্যাস, প্রতিটি আইটেমের জন্য একটি
"--দল দ্বারা"। আপনি যদি এই আইটেমগুলির কোনোটির জন্য একটি মান নির্দিষ্ট না করেন তবে ডিফল্টটি হল
শীর্ষ 95%।

এছাড়াও "--outliers" দেখুন।

--লগ
প্রকার: স্ট্রিং

ডেমনাইজ করা হলে এই ফাইলে সমস্ত আউটপুট প্রিন্ট করুন।

--ক্রম অনুসারে
প্রকার: অ্যারে; ডিফল্ট: Query_time:sum

এই বৈশিষ্ট্য এবং সমষ্টি ফাংশন দ্বারা ঘটনা বাছাই.

এটি একটি কমা দ্বারা বিভক্ত ক্রমানুসারে অভিব্যক্তির তালিকা, প্রতিটি "--গ্রুপ-বাই" এর জন্য একটি
বৈশিষ্ট্য ডিফল্ট "Query_time:sum" ব্যবহার করা হয় "--group-by" বৈশিষ্ট্য ছাড়াই
স্পষ্টভাবে "--অর্ডার-বাই" অ্যাট্রিবিউট দেওয়া হয়েছে (অর্থাৎ, যদি আপনি আরও "--গ্রুপ-বাই" উল্লেখ করেন
অনুরূপ "--ক্রম-দ্বারা" বৈশিষ্ট্যগুলির চেয়ে বৈশিষ্ট্যগুলি)। সিনট্যাক্স হল
"বিশিষ্ট: সমষ্টি"। বৈধ বৈশিষ্ট্যের জন্য "ATTRIBUTES" দেখুন। বৈধ সমষ্টি হল:

সামগ্রিক অর্থ
====================================
যোগফল সমষ্টি/মোট বৈশিষ্ট্য মান
ন্যূনতম ন্যূনতম বৈশিষ্ট্য মান
সর্বাধিক সর্বাধিক বৈশিষ্ট্য মান
cnt ফ্রিকোয়েন্সি/কোয়েরির গণনা

উদাহরণস্বরূপ, ডিফল্ট "Query_time:sum" এর অর্থ হল যে ক্যোয়ারী বিশ্লেষণে প্রশ্নগুলি
তাদের মোট ক্যোয়ারী এক্সিকিউশন টাইম ("Exec time") অনুসারে রিপোর্ট অর্ডার করা হবে (বাছাই করা)।
"Query_time:max" তাদের সর্বোচ্চ ক্যোয়ারী এক্সিকিউশন সময় অনুসারে ক্যোয়ারীগুলিকে অর্ডার করে, তাই
একক বৃহত্তম "Query_time" সহ ক্যোয়ারীটি প্রথমে তালিকাভুক্ত হবে। "cnt" আরও বোঝায়
সামগ্রিকভাবে প্রশ্নের ফ্রিকোয়েন্সি, এটি কত ঘন ঘন প্রদর্শিত হয়; "গণনা" তার
ক্যোয়ারী বিশ্লেষণ রিপোর্টে সংশ্লিষ্ট লাইন. সুতরাং যে কোনো বৈশিষ্ট্য এবং "cnt" উচিত
একই রিপোর্ট পাওয়া যায় যেখানে প্রশ্নগুলি কতবার প্রদর্শিত হয় তার সংখ্যা অনুসারে সাজানো হয়।

সাধারণ লগ পার্স করার সময় ("--টাইপ" "জেনলগ"), ডিফল্ট "--অর্ডার-বাই" হয়ে যায়
"Query_time:cnt"। সাধারণ লগগুলি কোয়েরির সময় রিপোর্ট করে না তাই শুধুমাত্র "cnt" সমষ্টি
অর্থপূর্ণ কারণ সমস্ত ক্যোয়ারী সময় শূন্য।

আপনি যদি এমন একটি বৈশিষ্ট্য নির্দিষ্ট করেন যা ইভেন্টগুলিতে বিদ্যমান নেই, তাহলে pt-query-digest
ডিফল্ট "Query_time:sum" এ ফিরে আসে এবং এর শুরুতে একটি নোটিশ প্রিন্ট করে
প্রতিটি ক্যোয়ারী ক্লাসের জন্য রিপোর্ট। আপনি "--ফিল্টার" দিয়ে গুণাবলী তৈরি করতে পারেন এবং এর দ্বারা অর্ডার করতে পারেন
তাদের; একটি উদাহরণের জন্য "ATTRIBUTES" দেখুন।

-- বহিরাগত
প্রকার: অ্যারে; ডিফল্ট: Query_time:1:10

বৈশিষ্ট্য:শতাংশ:গণনা দ্বারা আউটলিয়ারদের রিপোর্ট করুন।

এই বিকল্পের সিনট্যাক্স হল কোলন-বিন্যস্ত স্ট্রিংগুলির একটি কমা দ্বারা পৃথক করা তালিকা। দ্য
প্রথম ক্ষেত্র হল এমন বৈশিষ্ট্য যার দ্বারা একটি আউটলায়ারকে সংজ্ঞায়িত করা হয়। দ্বিতীয়টি একটি সংখ্যা
যেটি বৈশিষ্ট্যের 95তম শতাংশের সাথে তুলনা করা হয়। তৃতীয়টি ঐচ্ছিক, এবং হয়
অ্যাট্রিবিউটের cnt সমষ্টির তুলনায়। এই স্পেসিফিকেশন পাস যে প্রশ্ন
রিপোর্টে যোগ করা হয়েছে, আপনি "--সীমা"-এ নির্দিষ্ট করা কোনো সীমা নির্বিশেষে।

উদাহরণস্বরূপ, এমন প্রশ্নের রিপোর্ট করতে যার 95তম পার্সেন্টাইল Query_time কমপক্ষে 60 সেকেন্ড
এবং যা কমপক্ষে 5 বার দেখা যায়, নিম্নলিখিত যুক্তি ব্যবহার করুন:

--outliers Query_time:60:5

আপনি "--গ্রুপ-বাই"-এ প্রতিটি মানের জন্য একটি --outliers বিকল্প নির্দিষ্ট করতে পারেন।

--আউটপুট
প্রকার: স্ট্রিং; ডিফল্ট: রিপোর্ট

প্রশ্ন বিশ্লেষণ ফলাফল বিন্যাস এবং মুদ্রণ কিভাবে. গৃহীত মান হল:

মান বিন্যাস
====================================
রিপোর্ট স্ট্যান্ডার্ড ক্যোয়ারী বিশ্লেষণ রিপোর্ট
স্লোলগ মাইএসকিউএল স্লো লগ
json JSON, প্রতি কোয়েরি ক্লাসে অ্যারেতে
json-anon উদাহরণ প্রশ্ন ছাড়া JSON

সম্পূর্ণ "রিপোর্ট" আউটপুট "--নো-রিপোর্ট" উল্লেখ করে নিষ্ক্রিয় করা যেতে পারে (দেখুন
"--[নো]রিপোর্ট"), এবং এর বিভাগগুলি নির্দিষ্ট করে অক্ষম বা পুনর্বিন্যাস করা যেতে পারে
"--রিপোর্ট-ফরম্যাট"।

"json" আউটপুট 2.2.1 সালে চালু করা হয়েছিল এবং এখনও বিকাশে রয়েছে, তাই ডেটা
ভবিষ্যত সংস্করণে কাঠামো পরিবর্তন হতে পারে।

--পাসওয়ার্ড
সংক্ষিপ্ত রূপ: -p; প্রকার: স্ট্রিং

সংযোগ করার সময় ব্যবহার করার জন্য পাসওয়ার্ড। যদি পাসওয়ার্ডে কমা থাকে তবে সেগুলিকে এস্কেপ করতে হবে৷
ব্যাকস্ল্যাশ সহ: "পরীক্ষা\,ple"

--পিড
প্রকার: স্ট্রিং

প্রদত্ত পিআইডি ফাইল তৈরি করুন। পিআইডি ফাইলটি ইতিমধ্যে বিদ্যমান থাকলে টুলটি শুরু হবে না এবং
এতে থাকা PID বর্তমান PID থেকে আলাদা। তবে পিআইডি ফাইল হলে
বিদ্যমান এবং এতে থাকা পিআইডি আর চলছে না, টুলটি পিআইডি ওভাররাইট করবে
বর্তমান পিআইডি সহ ফাইল করুন। পিআইডি ফাইলটি স্বয়ংক্রিয়ভাবে সরানো হয় যখন টুলটি প্রস্থান করে।

--বন্দর
সংক্ষিপ্ত রূপ: -P; প্রকার: int

সংযোগের জন্য ব্যবহার করার জন্য পোর্ট নম্বর।

--প্রসেসলিস্ট
প্রকার: ডিএসএন

"--ব্যবধান" এর মধ্যে ঘুমের সাথে প্রশ্নের জন্য এই DSN-এর প্রক্রিয়া তালিকাটি পোল করুন।

সংযোগ ব্যর্থ হলে, pt-query-digest প্রতি সেকেন্ডে একবার এটি পুনরায় খোলার চেষ্টা করে।

--প্রগতি
প্রকার: অ্যারে; ডিফল্ট: সময়, 30

STDERR-এ অগ্রগতি প্রতিবেদন প্রিন্ট করুন। মানটি দুটি অংশ সহ একটি কমা দ্বারা পৃথক করা তালিকা৷
প্রথম অংশ শতাংশ, সময়, বা পুনরাবৃত্তি হতে পারে; দ্বিতীয় অংশ কিভাবে নির্দিষ্ট করে
প্রায়শই একটি আপডেট মুদ্রিত করা উচিত, শতাংশে, সেকেন্ডে বা পুনরাবৃত্তির সংখ্যায়।

--রিড-টাইমআউট
প্রকার: সময়; ডিফল্ট: 0

ইনপুট থেকে একটি ইভেন্টের জন্য এতক্ষণ অপেক্ষা করুন; 0 চিরকাল অপেক্ষা করুন।

এই বিকল্পটি ইনপুট থেকে একটি ইভেন্টের জন্য অপেক্ষা করার সর্বোচ্চ সময় নির্ধারণ করে। এটা প্রযোজ্য
"--প্রক্রিয়া তালিকা" ছাড়া সব ধরনের ইনপুট। যদি কোনো অনুষ্ঠানের পর না পাওয়া যায়
নির্দিষ্ট সময়, স্ক্রিপ্ট ইনপুট পড়া বন্ধ করে এবং তার রিপোর্ট প্রিন্ট করে। যদি
"--পুনরাবৃত্তি" 0 বা 1 এর বেশি, পরবর্তী পুনরাবৃত্তি শুরু হবে, অন্যথায় স্ক্রিপ্ট
প্রস্থান করবে।

এই বিকল্পটির জন্য পার্ল POSIX মডিউল প্রয়োজন।

--[কোন] প্রতিবেদন
ডিফল্ট: হ্যাঁ

প্রতিটি "--গ্রুপ-বাই" অ্যাট্রিবিউটের জন্য ক্যোয়ারী বিশ্লেষণ রিপোর্ট প্রিন্ট করুন। এই মান
ধীর লগ বিশ্লেষণ কার্যকারিতা. এটি কি করে তার বর্ণনার জন্য "OUTPUT" দেখুন
এবং ফলাফল দেখতে কেমন।

আপনার যদি কোনো প্রতিবেদনের প্রয়োজন না হয় (উদাহরণস্বরূপ, "--পর্যালোচনা" বা "--ইতিহাস" ব্যবহার করার সময়), এটি
"--নো-রিপোর্ট" উল্লেখ করা ভাল কারণ এটি সরঞ্জামটিকে কিছু ব্যয়বহুল এড়িয়ে যেতে দেয়
অপারেশন।

--প্রতিবেদন-সমস্ত
সমস্ত প্রশ্নের রিপোর্ট করুন, এমনকি যেগুলি পর্যালোচনা করা হয়েছে। এটি শুধুমাত্র "রিপোর্ট" কে প্রভাবিত করে
"--আউটপুট" ব্যবহার করার সময় "--পর্যালোচনা"। অন্যথায়, সমস্ত প্রশ্ন সবসময় মুদ্রিত হয়.

--প্রতিবেদন বিন্যাস
প্রকার: অ্যারে; ডিফল্ট: rusage,তারিখ,হোস্টনাম,ফাইল,হেডার,প্রোফাইল,query_report,প্রস্তুত

ক্যোয়ারী বিশ্লেষণ রিপোর্টের এই বিভাগগুলি প্রিন্ট করুন।

বিভাগ প্রিন্ট
================================================ =================
rusage CPU বার এবং ps দ্বারা রিপোর্ট করা মেমরি ব্যবহার
তারিখ বর্তমান স্থানীয় তারিখ এবং সময়
হোস্টনাম মেশিনের হোস্টনাম যেটিতে pt-query-digest চালানো হয়েছিল
ফাইল ইনপুট ফাইল রিড/পার্স
হেডার সমগ্র বিশ্লেষণ চালানোর সারাংশ
প্রতিবেদনের ওভারভিউয়ের জন্য প্রোফাইল কম্প্যাক্ট সারণী
query_report প্রতিটি অনন্য কোয়েরি সম্পর্কে বিস্তারিত তথ্য
প্রস্তুত প্রস্তুত বিবৃতি

বিভাগগুলি নির্দিষ্ট ক্রমে মুদ্রিত হয়। রাসেজ, তারিখ, ফাইল এবং হেডার
বিভাগগুলি একসাথে গোষ্ঠীভুক্ত করা হয় যদি একসাথে নির্দিষ্ট করা হয়; অন্যান্য বিভাগ দ্বারা পৃথক করা হয়
ফাঁকা লাইন।

ক্যোয়ারী রিপোর্টের বিভিন্ন অংশে আরও তথ্যের জন্য "OUTPUT" দেখুন।

--রিপোর্ট-হিস্টোগ্রাম
প্রকার: স্ট্রিং; ডিফল্ট: Query_time

এই বৈশিষ্ট্য এর মান বন্টন চার্ট.

ডিস্ট্রিবিউশন চার্ট সময় ভিত্তিক বৈশিষ্ট্য সীমাবদ্ধ, তাই চার্টিং
"সারি_পরীক্ষা করা", উদাহরণস্বরূপ, একটি অকেজো চার্ট তৈরি করবে। চার্ট দেখতে এইরকম:

# প্রশ্ন_সময় বিতরণ
# 1us
# 10us
# 100us
# 1 মি
#10ms #########################
#100ms #################################### ########
# 1s ########
# 10s+

আরও তথ্যের জন্য "OUTPUT" দেখুন।

--জীবনবৃত্তান্ত
প্রকার: স্ট্রিং

যদি নির্দিষ্ট করা থাকে, তাহলে টুলটি শেষ ফাইল অফসেট লিখবে, যদি একটি থাকে, প্রদত্তটিতে
ফাইলের নাম। এই বিকল্পের জন্য একই মান দিয়ে আবার চালানো হলে, টুলটি শেষটি পড়ে
ফাইল থেকে ফাইল অফসেট, লগে সেই অবস্থানে খোঁজ করে এবং পার্সিং পুনরায় শুরু করে
যে বিন্দু থেকে ঘটনা.

--পুনঃমূল্যায়ন
প্রকার: ডিএসএন

পরবর্তী পর্যালোচনার জন্য ক্যোয়ারী ক্লাসগুলি সংরক্ষণ করুন এবং ইতিমধ্যে পর্যালোচনা করা ক্লাসগুলি রিপোর্ট করবেন না৷

ডিফল্ট টেবিল হল "percona_schema.query_review"। ডাটাবেস (D) এবং টেবিল উল্লেখ করুন
(t) ডিফল্ট ওভাররাইড করতে DSN অপশন। ডাটাবেস এবং টেবিল স্বয়ংক্রিয়ভাবে হয়
"--no-create-review-table" নির্দিষ্ট না হলে তৈরি করা হয়েছে (দেখুন
"--[না] তৈরি-পর্যালোচনা-টেবিল")।

যদি টেবিলটি ম্যানুয়ালি তৈরি করা হয় তবে এতে কমপক্ষে নিম্নলিখিত কলাম থাকতে হবে। আপনি
আপনার নিজস্ব বিশেষ উদ্দেশ্যে আরো কলাম যোগ করতে পারেন, কিন্তু তারা pt- দ্বারা ব্যবহার করা হবে না
query-digest.

query_review না থাকলে টেবিল তৈরি করুন (
চেকসাম বিজিন্ট আনসাইনড নট নাল প্রাইমারি কী,
আঙুলের ছাপ পাঠ্য শূন্য নয়,
নমুনা পাঠ্য শূন্য নয়,
DATETIME এ প্রথম_দেখা,
DATETIME এ শেষ_দেখা,
পর্যালোচনা করা হয়েছে ভোরচার(২০১১),
DATETIME এ পর্যালোচনা করা হয়েছে,
মন্তব্য TEXT
)

কলামগুলি হল:

কলাম অর্থ
=============================================== ==============
চেকসাম কোয়েরি ফিঙ্গারপ্রিন্টের একটি 64-বিট চেকসাম
আঙ্গুলের ছাপ প্রশ্নের বিমূর্ত সংস্করণ; এর প্রাথমিক কী
নমুনা প্রশ্নের ক্লাসের নমুনার ক্যোয়ারী টেক্সট
first_seen এই শ্রেণীর প্রশ্নের সবচেয়ে ছোট টাইমস্ট্যাম্প
last_seen এই শ্রেণীর প্রশ্নের সবচেয়ে বড় টাইমস্ট্যাম্প
reviewed_by প্রাথমিকভাবে NULL; যদি সেট করা থাকে, তাহলে ক্যোয়ারী পরে এড়িয়ে যাবে
reviewed_on প্রাথমিকভাবে NULL; কোনো বিশেষ অর্থ বরাদ্দ করা হয়নি
মন্তব্য প্রাথমিকভাবে NULL; কোনো বিশেষ অর্থ বরাদ্দ করা হয়নি

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

পার্সিং এবং ইভেন্ট একত্রিত করার পরে, আপনার টেবিলে প্রতিটির জন্য একটি সারি থাকা উচিত
আঙুলের ছাপ এই বিকল্পটি "--গ্রুপ-বাই ফিঙ্গারপ্রিন্ট" এর উপর নির্ভর করে (যা ডিফল্ট)।
এটা অন্যথায় কাজ করবে না.

--রান-টাইম
প্রকার: সময়

প্রতিটি "--পুনরাবৃত্তি" এর জন্য কতক্ষণ চালাতে হবে। ডিফল্ট হল চিরতরে চালানো (আপনি করতে পারেন
CTRL-C এর সাথে বাধা)। কারণ "--পুনরাবৃত্তি" ডিফল্ট 1 এ, যদি আপনি শুধুমাত্র নির্দিষ্ট করেন
"--রান-টাইম", pt-query-digest সেই পরিমাণ সময়ের জন্য চলে এবং তারপর প্রস্থান করে। দুই
সংগ্রহ-এবং-প্রতিবেদন চক্র করতে একসাথে বিকল্পগুলি নির্দিষ্ট করা হয়েছে। উদাহরণ স্বরূপ,
একটানা ইনপুট সহ "--পুনরাবৃত্তি" 4 "--রান-টাইম" "15m" নির্দিষ্ট করা হচ্ছে (যেমন STDIN বা
"--processlist") pt-query-digest 1 ঘন্টা (15 মিনিট x 4) চালানোর কারণ হবে,
প্রতি 15 মিনিটের ব্যবধানে একবার করে চারবার রিপোর্ট করা হচ্ছে।

--রান-টাইম-মোড
প্রকার: স্ট্রিং; ডিফল্ট: ঘড়ি

"--রান-টাইম" এর মান কী কাজ করে তা সেট করুন। নিম্নলিখিত জন্য সম্ভাব্য মান আছে
এই বিকল্প:

ঘড়ি
"--রান-টাইম" প্রকৃত ঘড়ির সময় নির্দিষ্ট করে যে সময় টুলটি করা উচিত
প্রতিটি "--পুনরাবৃত্তি" এর জন্য চালান।

ঘটনা
"--রান-টাইম" লগ সময়ের পরিমাণ নির্দিষ্ট করে। লগ টাইম দ্বারা নির্ধারিত হয়
লগে টাইমস্ট্যাম্প। প্রথম দেখা টাইমস্ট্যাম্প মনে রাখা হয়, এবং প্রতিটি টাইমস্ট্যাম্প
তারপর কত লগ সময় পার হয়েছে তা নির্ধারণ করতে প্রথমটির সাথে তুলনা করা হয়।
উদাহরণস্বরূপ, যদি প্রথম টাইমস্ট্যাম্প দেখা হয় "12:00:00" এবং পরেরটি হয় "12:01:30",
অর্থাৎ লগ টাইম 1 মিনিট 30 সেকেন্ড। টুলটি পর্যন্ত ইভেন্ট পড়বে
লগ টাইম নির্দিষ্ট "--রান-টাইম" মানের চেয়ে বেশি বা সমান।

যেহেতু লগে টাইমস্ট্যাম্প সবসময় মুদ্রিত হয় না, বা সবসময় ঘন ঘন মুদ্রিত হয় না,
এই মোড নির্ভুলতা পরিবর্তিত হয়.

অন্তর
"--রান-টাইম" লগ টাইমের ব্যবধানের সীমানা নির্দিষ্ট করে যেখানে ইভেন্টগুলি রয়েছে৷
বিভক্ত এবং প্রতিবেদন তৈরি করা হয়। এই মোড অন্যদের থেকে ভিন্ন কারণ
এটি কতক্ষণ চালাতে হবে তা নির্দিষ্ট করে না। "--রান-টাইম" এর মান অবশ্যই একটি ব্যবধান হতে হবে
যা মিনিট, ঘন্টা বা দিনে সমানভাবে বিভক্ত। উদাহরণস্বরূপ, "5 মি" সমানভাবে ভাগ করে
ঘন্টায় (60/5=12, তাই প্রতি ঘন্টায় 12 5 মিনিট অন্তর) কিন্তু "7m" নয়
(60/7=8.6)।

"--রান-টাইম-মোড ব্যবধান --রান-টাইম 30m -- পুনরাবৃত্তি 0" উল্লেখ করা অনুরূপ
"--রান-টাইম-মোড ঘড়ি --রান-টাইম 30m -- পুনরাবৃত্তি 0" উল্লেখ করা হচ্ছে। পরে
ক্ষেত্রে, pt-query-digest চিরতরে চলবে, প্রতি 30 মিনিটে রিপোর্ট তৈরি করবে, কিন্তু
এটি শুধুমাত্র STDIN এবং এর মতো অবিচ্ছিন্ন ইনপুটগুলির সাথে কার্যকরভাবে কাজ করে
প্রক্রিয়া তালিকা স্থির ইনপুটগুলির জন্য, লগ ফাইলের মতো, পূর্বের উদাহরণটি তৈরি করে
লগকে 30 মিনিটের ব্যবধানে বিভক্ত করে একাধিক প্রতিবেদন
টাইমস্ট্যাম্প

ব্যবধান গণনা করা হয় জিরোথ সেকেন্ড/মিনিট/ঘন্টা থেকে যেখানে একটি টাইমস্ট্যাম্প
ঘটে, যে সময় থেকে এটি নির্দিষ্ট করে না। উদাহরণস্বরূপ, 30 মিনিটের সাথে
ব্যবধান এবং একটি টাইমস্ট্যাম্প "12:10:30", ব্যবধান হল না "12:10:30" থেকে
"12:40:30", এটি "12:00:00" থেকে "12:29:59"। অথবা, 1 ঘন্টার ব্যবধান সহ, এটি হয়
"12:00:00" থেকে "12:59:59"। যখন একটি নতুন টাইমস্ট্যাম্প ব্যবধান অতিক্রম করে, তখন একটি প্রতিবেদন
মুদ্রিত, এবং পরবর্তী ব্যবধানটি নতুন টাইমস্ট্যাম্পের উপর ভিত্তি করে পুনরায় গণনা করা হয়।

যেহেতু "--পুনরাবৃত্তি" ডিফল্টরূপে 1, আপনি সম্ভবত একটি নতুন মান নির্দিষ্ট করতে চান
অন্যথায় pt-query-digest শুধুমাত্র লগ থেকে প্রথম ব্যবধানে পাবে এবং রিপোর্ট করবে
যেহেতু 1 ব্যবধান = 1 পুনরাবৃত্তি। আপনি পেতে এবং প্রতিটি বিরতি রিপোর্ট করতে চান তাহলে একটি
লগ, "--পুনরাবৃত্তি" 0 উল্লেখ করুন।

-- নমুনা
প্রকার: int

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

pt-query-digest --sample 2 --no-report --output slowlog slow.log

--সেট-ভার্স
প্রকার: অ্যারে

"variable=value" জোড়ার এই কমা দ্বারা পৃথক করা তালিকায় MySQL ভেরিয়েবল সেট করুন।

ডিফল্টরূপে, টুল সেট করে:

অপেক্ষা_সময় শেষ = 10000

কমান্ড লাইনে নির্দিষ্ট করা ভেরিয়েবল এই ডিফল্টগুলিকে ওভাররাইড করে। উদাহরণ স্বরূপ,
"--set-vars wait_timeout=500" নির্দিষ্ট করা 10000-এর ডিফল্ট মানকে ওভাররাইড করে।

টুলটি একটি সতর্কতা প্রিন্ট করে এবং একটি ভেরিয়েবল সেট করা না গেলে চলতে থাকে।

--সব দেখাও
প্রকার: হ্যাশ

এই বৈশিষ্ট্যগুলির জন্য সমস্ত মান দেখান।

ডিফল্টরূপে pt-query-digest শুধুমাত্র একটি বৈশিষ্ট্যের মান দেখায় যা একটি
সপ্তাহের দিন. এই বিকল্পটি আপনাকে বৈশিষ্ট্যগুলি নির্দিষ্ট করতে দেয় যার জন্য সমস্ত মান হবে
দেখানো হবে (লাইন প্রস্থ উপেক্ষা করা হয়)। এটি শুধুমাত্র স্ট্রিং মান সহ বৈশিষ্ট্যগুলির জন্য কাজ করে
যেমন ব্যবহারকারী, হোস্ট, ডিবি, ইত্যাদি। একাধিক বৈশিষ্ট্য নির্দিষ্ট করা যেতে পারে, কমা দ্বারা পৃথক করা।

--থেকে
প্রকার: স্ট্রিং

শুধুমাত্র এই মানের থেকে নতুন প্রশ্ন পার্স করুন (এই তারিখ থেকে পার্স কোয়েরি)।

এই বিকল্পটি আপনাকে একটি নির্দিষ্ট মানের থেকে পুরানো প্রশ্নগুলি উপেক্ষা করতে এবং শুধুমাত্র পার্স করার অনুমতি দেয়
সেই প্রশ্নগুলি যা মানের চেয়ে সাম্প্রতিক। মান বিভিন্ন ধরনের হতে পারে:

* সহজ সময় মান N ঐচ্ছিক প্রত্যয় সহ: N[shmd], যেখানে
s=সেকেন্ড, h=hours, m=minutes, d=days (কোন প্রত্যয় না থাকলে ডিফল্ট s
দেওয়া); এটি "N[shmd] আগে থেকে" বলার মতো
* ঐচ্ছিক ঘন্টা সহ সম্পূর্ণ তারিখ: মিনিট: সেকেন্ড:
YYYY-MM-DD [HH:MM::SS]
* সংক্ষিপ্ত, মাইএসকিউএল-স্টাইল তারিখ:
YYMMDD [HH:MM:SS]
* MySQL দ্বারা মূল্যায়ন করা যেকোনো সময়ের অভিব্যক্তি:
CURRENT_DATE - INTERVAL 7 দিন

আপনি যদি একটি মাইএসকিউএল টাইম এক্সপ্রেশন দেন এবং আপনি এর জন্য একটি ডিএসএনও নির্দিষ্ট না করেন
"--ব্যাখ্যা করুন", "--প্রক্রিয়া তালিকা", বা "--পর্যালোচনা", তাহলে আপনাকে অবশ্যই একটি DSN উল্লেখ করতে হবে
কমান্ড লাইন যাতে pt-query-digest অভিব্যক্তি মূল্যায়ন করতে MySQL এর সাথে সংযোগ করতে পারে।

MySQL টাইম এক্সপ্রেশনটি "SELECT এর মত একটি প্রশ্নের ভিতরে মোড়ানো হয়
UNIX_TIMESTAMP( )", তাই নিশ্চিত হন যে এক্সপ্রেশনটি এর ভিতরে বৈধ
প্রশ্ন. উদাহরণস্বরূপ, ব্যবহার করবেন না UNIX_TIMESTAMP() কারণ
UNIX_TIMESTAMP(UNIX_TIMESTAMP()) 0 ফেরত দেয়।

ঘটনাগুলি কালানুক্রমিকভাবে অনুমান করা হয়: লগের শুরুতে পুরানো ঘটনাগুলি
এবং লগের শেষে নতুন ইভেন্ট। "--যেহেতু" কঠোর: এটি সমস্ত প্রশ্ন উপেক্ষা করে
যতক্ষণ না একটি পাওয়া যায় তা যথেষ্ট নতুন। অতএব, যদি কোয়েরি ঘটনা না হয়
ধারাবাহিকভাবে টাইমস্ট্যাম্প, কিছু উপেক্ষা করা যেতে পারে যা আসলে যথেষ্ট নতুন।

আরও দেখুন "--পর্যন্ত"।

--সকেট
ছোট ফর্ম; প্রকার: স্ট্রিং

সংযোগের জন্য ব্যবহার করার জন্য সকেট ফাইল।

--টাইমলাইন
ইভেন্টের একটি টাইমলাইন দেখান।

এই বিকল্পটি pt-query-digest প্রিন্ট করে অন্য ধরনের রিপোর্ট: একটি টাইমলাইন
ঘটনা প্রতিটি ক্যোয়ারী এখনও গোষ্ঠীভুক্ত এবং ক্লাস অনুযায়ী একত্রিত হয়
"--গ্রুপ-বাই", কিন্তু তারপর সেগুলো কালানুক্রমিক ক্রমে মুদ্রিত হয়। টাইমলাইন রিপোর্ট
প্রতিটি ক্লাসের টাইমস্ট্যাম্প, ব্যবধান, গণনা এবং মান প্রিন্ট করে।

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

উদাহরণস্বরূপ, এই:

pt-query-digest /path/to/log --group-by distill --timeline

এরকম কিছু মুদ্রণ করবে:

##################################### #######
# ডিস্টিল রিপোর্ট
##################################### #######
# 2009-07-25 11:19:27 1+00:00:01 2 SELECT foo
# 2009-07-27 11:19:30 00:01 2 নির্বাচন বার
# 2009-07-27 11:30:00 1+06:30:00 2 SELECT foo

--টাইপ
প্রকার: অ্যারে; ডিফল্ট: স্লোলগ

পার্স করার জন্য ইনপুটের প্রকার। অনুমোদিত ধরনের হয়

বিনলগ
একটি বাইনারি লগ ফাইল পার্স করুন যা প্রথমে mysqlbinlog ব্যবহার করে পাঠ্যে রূপান্তরিত হয়েছে।

উদাহরণ স্বরূপ:

mysqlbinlog mysql-bin.000441 > mysql-bin.000441.txt

pt-query-digest --type binlog mysql-bin.000441.txt

genlog
একটি MySQL সাধারণ লগ ফাইল পার্স করুন। সাধারণ লগগুলিতে উল্লেখযোগ্যভাবে "অ্যাট্রিবিউটস" এর অনেক অভাব রয়েছে
"Query_time"। সাধারণ লগের জন্য ডিফল্ট "--order-by"-এ পরিবর্তিত হয়
"Query_time:cnt"।

স্লোলগ
MySQL স্লো লগ ফরম্যাটের যেকোন পরিবর্তনে একটি লগ ফাইল পার্স করুন।

tcpdump
নেটওয়ার্ক প্যাকেটগুলি পরিদর্শন করুন এবং MySQL ক্লায়েন্ট প্রোটোকল ডিকোড করুন, অনুসন্ধানগুলি বের করুন৷
এবং এটি থেকে প্রতিক্রিয়া।

pt-query-digest আসলে নেটওয়ার্ক দেখে না (অর্থাৎ এটি "স্নিফ করে না
প্যাকেট")। পরিবর্তে, এটি শুধু tcpdump-এর আউটপুট পার্স করছে। আপনি দায়ী
এই আউটপুট তৈরি করার জন্য; pt-query-digest আপনার জন্য এটি করে না। তারপর আপনি পাঠান
এটি pt-query-digest-এ আপনি যেকোনো লগ ফাইলের মতো: কমান্ড লাইনে ফাইল হিসাবে বা
STDIN-এ।

পার্সার আশা করে যে ইনপুট নিম্নলিখিত বিকল্পগুলির সাথে বিন্যাসিত হবে: "-x -n -q
-tttt।" উদাহরণস্বরূপ, আপনি যদি আপনার স্থানীয় মেশিন থেকে আউটপুট ক্যাপচার করতে চান, আপনি
নিম্নলিখিত মত কিছু করতে পারেন (পোর্টটি অবশ্যই FreeBSD তে শেষ হতে হবে):

tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000 পোর্ট 3306 \
> mysql.tcp.txt
pt-query-digest --type tcpdump mysql.tcp.txt

অন্যান্য tcpdump পরামিতি, যেমন -s, -c, এবং -i, আপনার উপর নির্ভর করে। শুধু বানাও
নিশ্চিত আউটপুট এই মত দেখায় (এড়াতে প্রথম লাইনে একটি লাইন বিরতি আছে
ম্যান-পেজ সমস্যা):

2009-04-12 09:50:16.804849 IP 127.0.0.1.42167
> 127.0.0.1.3306: টিসিপি 37
0x0000: 4508 0059 6eb2 4000 4006 cde2 7f00 0001
0x0010: ...

মনে রাখবেন tcpdump এর কিছু সংখ্যক ক্যাপচার করার পরে থামার জন্য একটি সহজ -c বিকল্প রয়েছে
প্যাকেট এটি আপনার tcpdump কমান্ড পরীক্ষা করার জন্য খুব দরকারী। নোট করুন যে tcpdump
একটি ইউনিক্স সকেটে ট্র্যাফিক ক্যাপচার করতে পারে না। পড়ুন
<http://bugs.mysql.com/bug.php?id=31577> আপনি যদি এই বিষয়ে বিভ্রান্ত হন।

দেবানন্দ ভ্যান ডের ভিন মাইএসকিউএল পারফরম্যান্স ব্লগে ব্যাখ্যা করেছেন কিভাবে ক্যাপচার করতে হয়
ব্যস্ত সার্ভারে প্যাকেট ড্রপ ছাড়া ট্রাফিক. বাদ দেওয়া প্যাকেটের কারণে pt-query-
একটি অনুরোধের প্রতিক্রিয়া মিস করতে ডাইজেস্ট, তারপর পরবর্তী অনুরোধের প্রতিক্রিয়া দেখুন
এবং ক্যোয়ারীতে ভুল এক্সিকিউশন সময় বরাদ্দ করুন। আপনি ফিল্টার পরিবর্তন করতে পারেন
প্রশ্নের একটি উপসেট ক্যাপচার করতে সাহায্য করার জন্য নিম্নলিখিত মত কিছু. (দেখা
<http://www.mysqlperformanceblog.com/?p=6092> বিস্তারিত জানার জন্য।)

tcpdump -i any -s 65535 -x -n -q -tttt \
'পোর্ট 3306 এবং tcp[1] & 7 == 2 এবং tcp[3] & 7 == 2'

পোর্ট 3306-এ চলমান সমস্ত MySQL সার্ভার স্বয়ংক্রিয়ভাবে tcpdump-এ শনাক্ত হয়
আউটপুট অতএব, যদি tcpdump আউটে একাধিক সার্ভার থেকে প্যাকেট থাকে
পোর্ট 3306 (উদাহরণস্বরূপ, 10.0.0.1:3306, 10.0.0.2:3306, ইত্যাদি), সমস্ত প্যাকেট/কোয়েরি
এই সমস্ত সার্ভার থেকে একসাথে বিশ্লেষণ করা হবে যেন তারা একটি সার্ভার।

আপনি যদি একটি MySQL সার্ভারের জন্য ট্র্যাফিক বিশ্লেষণ করছেন যা পোর্ট 3306 এ চলছে না,
"--ওয়াচ-সার্ভার" দেখুন।

এছাড়াও মনে রাখবেন যে pt-query-digest যখন প্রশ্নের জন্য ডাটাবেস রিপোর্ট করতে ব্যর্থ হতে পারে
tcpdump আউটপুট পার্সিং। ডাটাবেস শুধুমাত্র প্রাথমিক সংযোগে আবিষ্কৃত হয়
একটি নতুন ক্লায়েন্ট বা যখন ইভেন্ট মৃত্যুদন্ড কার্যকর করা হয়। tcpdump আউটপুট হলে
এগুলোর কোনোটিই নেই, তাহলে pt-query-digest ডাটাবেস আবিষ্কার করতে পারে না।

সার্ভার-সাইড প্রস্তুত বিবৃতি সমর্থিত. SSL-এনক্রিপ্ট করা ট্রাফিক হতে পারে না
পরিদর্শন এবং ডিকোড করা।

rawlog
কাঁচা লগগুলি মাইএসকিউএল লগ নয় কিন্তু প্রতি লাইনে একটি SQL স্টেটমেন্ট সহ সাধারণ পাঠ্য ফাইল,
মত:

টি যেখানে id=1 থেকে c নির্বাচন করুন
/* ওহে বিশ্ব! */ নির্বাচন করুন * t2 সীমা থেকে 1
t (a, b) মানের মধ্যে সন্নিবেশ করুন ('foo', 'বার')
বানর থেকে টি সিলেক্ট * ইনসার্ট করুন

যেহেতু কাঁচা লগগুলিতে কোনো মেট্রিক্স নেই, তাই pt-query-এর অনেকগুলি বিকল্প এবং বৈশিষ্ট্য-
ডাইজেস্ট তাদের সাথে কাজ করবেন না।

কাঁচা লগের জন্য একটি ব্যবহারের ক্ষেত্রে শুধুমাত্র তথ্য যখন গণনা দ্বারা প্রশ্ন র্যাঙ্কিং হয়
উদাহরণস্বরূপ, "প্রসেসলিস্ট দেখান" পোলিং থেকে প্রশ্নের একটি তালিকা উপলব্ধ।

-- পর্যন্ত
প্রকার: স্ট্রিং

শুধুমাত্র এই মানের চেয়ে পুরানো প্রশ্নগুলি পার্স করুন (এই তারিখ পর্যন্ত পার্স কোয়েরি)।

এই বিকল্পটি আপনাকে একটি নির্দিষ্ট মানের থেকে নতুন প্রশ্নগুলিকে উপেক্ষা করতে এবং শুধুমাত্র পার্স করার অনুমতি দেয়
যে প্রশ্নগুলি মূল্যের চেয়ে পুরানো। মান একই ধরনের এক হতে পারে
"--এর জন্য" তালিকাভুক্ত।

"-- থেকে" থেকে ভিন্ন, "--পর্যন্ত" কঠোর নয়: সমস্ত প্রশ্ন পার্স করা হয় যতক্ষণ না একটি
টাইমস্ট্যাম্প যা "--পর্যন্ত" এর সমান বা বড়। তারপর সব পরবর্তী প্রশ্ন হয়
উপেক্ষা করা

-- ব্যবহারকারী
সংক্ষিপ্ত রূপ: -u; প্রকার: স্ট্রিং

বর্তমান ব্যবহারকারী না হলে লগইন করার জন্য ব্যবহারকারী।

-- ভিন্নতা
প্রকার: অ্যারে

এই গুণাবলীর মানগুলির বৈচিত্র্যের সংখ্যা প্রতিবেদন করুন।

বৈচিত্রগুলি দেখায় যে একটি শ্রেণির মধ্যে একটি বৈশিষ্ট্যের কতগুলি স্বতন্ত্র মান রয়েছে। যথা রীতি
এই বিকল্পের মান হল "arg" যা দেখায় কতগুলি স্বতন্ত্র প্রশ্ন ছিল৷
ক্লাস এটি একটি প্রশ্নের ক্যাশেবিলিটি নির্ধারণ করতে কার্যকর হতে পারে।

স্বতন্ত্র মানগুলি বৈশিষ্ট্যের মানগুলির CRC32 চেকসাম দ্বারা নির্ধারিত হয়। এইগুলো
চেকসাম এই বিকল্প দ্বারা নির্দিষ্ট বৈশিষ্ট্যগুলির জন্য ক্যোয়ারী রিপোর্টে রিপোর্ট করা হয়,
মত:

# arg crc 109 (1/25%), 144 (1/25%)... 2 আরো

সেই ক্লাসে ৪টি স্বতন্ত্র প্রশ্ন ছিল। প্রথম দুটির চেকসাম
বৈচিত্র দেখানো হয়েছে, এবং প্রতিটি একবার ঘটেছে (বা, সময়ের 25%)।

স্বতন্ত্র বৈচিত্রের গণনা আনুমানিক কারণ মাত্র 1,000টি বৈচিত্র
সংরক্ষিত. সম্পূর্ণ CRC1000 চেকসামের মোড (%) 32 সংরক্ষণ করা হয়েছে, তাই কিছু স্বতন্ত্র
চেকসামগুলিকে সমান হিসাবে বিবেচনা করা হয়।

--সংস্করণ
সংস্করণ দেখান এবং প্রস্থান করুন।

--[কোন] সংস্করণ-চেক
ডিফল্ট: হ্যাঁ

Percona Toolkit, MySQL, এবং অন্যান্য প্রোগ্রামগুলির সর্বশেষ সংস্করণের জন্য পরীক্ষা করুন৷

এটি একটি স্ট্যান্ডার্ড "স্বয়ংক্রিয়ভাবে আপডেটের জন্য চেক করুন" বৈশিষ্ট্য, দুটি অতিরিক্ত সহ
বৈশিষ্ট্য প্রথমত, টুলটি স্থানীয় সিস্টেমে অন্যান্য প্রোগ্রামের সংস্করণ পরীক্ষা করে
এর নিজস্ব সংস্করণ ছাড়াও। উদাহরণস্বরূপ, এটি প্রতিটি MySQL সার্ভারের সংস্করণ পরীক্ষা করে
এটি পার্ল এবং পার্ল মডিউল DBD::mysql-এর সাথে সংযোগ করে। দ্বিতীয়ত, এটি পরীক্ষা করে এবং সতর্ক করে
পরিচিত সমস্যা সহ সংস্করণ সম্পর্কে। উদাহরণস্বরূপ, MySQL 5.5.25-এ একটি জটিল বাগ ছিল এবং
5.5.25a হিসাবে পুনরায় প্রকাশিত হয়েছিল৷

যেকোন আপডেট বা পরিচিত সমস্যা টুলের স্বাভাবিক আউটপুটের আগে STDOUT এ প্রিন্ট করা হয়।
এই বৈশিষ্ট্যটি কখনই টুলের স্বাভাবিক ক্রিয়াকলাপে হস্তক্ষেপ করবে না।

আরো তথ্যের জন্য, যান .

--ওয়াচ সার্ভার
প্রকার: স্ট্রিং

এই বিকল্পটি pt-query-digest বলে যে কোন সার্ভারের IP ঠিকানা এবং পোর্ট (যেমন
"10.0.0.1:3306") টিসিপিডাম্প পার্স করার সময় দেখার জন্য ("--টাইপ" tcpdump এর জন্য); অন্য সবগুলো
সার্ভার উপেক্ষা করা হয়. যদি আপনি এটি নির্দিষ্ট না করেন, pt-query-digest এর দ্বারা সমস্ত সার্ভার দেখে
পোর্ট 3306 বা "mysql" ব্যবহার করে কোনো আইপি ঠিকানা খুঁজছেন। আপনি যদি একটি সার্ভার দেখছেন
একটি অ-মানক পোর্টের সাথে, এটি কাজ করবে না, তাই আপনাকে অবশ্যই আইপি ঠিকানা এবং পোর্ট উল্লেখ করতে হবে
দেখা.

আপনি যদি সার্ভারের মিশ্রণ দেখতে চান, কিছু স্ট্যান্ডার্ড পোর্ট 3306 এ চলছে এবং কিছু
অ-মানক পোর্টে চলমান, আপনাকে এর জন্য আলাদা tcpdump আউটপুট তৈরি করতে হবে
অ-মানক পোর্ট সার্ভার এবং তারপর প্রতিটির জন্য এই বিকল্পটি নির্দিষ্ট করুন। বর্তমানে pt-query-
ডাইজেস্ট পোর্ট 3306-এ সার্ভারগুলি স্বয়ংক্রিয়ভাবে সনাক্ত করতে পারে না এবং একটি সার্ভার দেখতেও বলা হয়
অ-মানক পোর্ট।

ডিএসএন বিকল্প


এই DSN বিকল্পগুলি একটি DSN তৈরি করতে ব্যবহৃত হয়। প্রতিটি অপশন দেওয়া আছে যেমন "option=value"।
বিকল্পগুলি কেস-সংবেদনশীল, তাই P এবং p একই বিকল্প নয়। থাকতে পারে না
"=" এর আগে বা পরে হোয়াইটস্পেস এবং যদি মানটিতে হোয়াইটস্পেস থাকে তবে এটি অবশ্যই উদ্ধৃত করা উচিত।
DSN বিকল্পগুলি কমা দ্বারা পৃথক করা হয়৷ সম্পূর্ণ বিবরণের জন্য percona-toolkit ম্যানপেজ দেখুন।

· এ

dsn: অক্ষর সেট; অনুলিপি: হ্যাঁ

ডিফল্ট অক্ষর সেট।

· ডি

dsn: ডাটাবেস; অনুলিপি: হ্যাঁ

MySQL এর সাথে সংযোগ করার সময় ব্যবহার করার জন্য ডিফল্ট ডাটাবেস।

· F

dsn: mysql_read_default_file; অনুলিপি: হ্যাঁ

প্রদত্ত ফাইল থেকে শুধুমাত্র ডিফল্ট বিকল্পগুলি পড়ুন।

· জ

dsn: হোস্ট; অনুলিপি: হ্যাঁ

হোস্টের সাথে সংযোগ করুন।

· পি

dsn: পাসওয়ার্ড; অনুলিপি: হ্যাঁ

সংযোগ করার সময় ব্যবহার করার জন্য পাসওয়ার্ড। যদি পাসওয়ার্ডে কমা থাকে তবে সেগুলিকে এস্কেপ করতে হবে৷
ব্যাকস্ল্যাশ সহ: "পরীক্ষা\,ple"

· পি

dsn: পোর্ট; অনুলিপি: হ্যাঁ

সংযোগের জন্য ব্যবহার করার জন্য পোর্ট নম্বর।

। এস

dsn: mysql_socket; অনুলিপি: হ্যাঁ

সংযোগের জন্য ব্যবহার করার জন্য সকেট ফাইল।

· টি

"--পর্যালোচনা" বা "--ইতিহাস" টেবিল।

· u

dsn: ব্যবহারকারী; অনুলিপি: হ্যাঁ

বর্তমান ব্যবহারকারী না হলে লগইন করার জন্য ব্যবহারকারী।

পরিবেশ


পরিবেশ পরিবর্তনশীল "PTDEBUG" STDERR-এ ভার্বোজ ডিবাগিং আউটপুট সক্ষম করে। সক্রিয় করতে
ডিবাগিং এবং একটি ফাইলে সমস্ত আউটপুট ক্যাপচার করুন, টুলটি চালান যেমন:

PTDEBUG=1 pt-query-digest... > ফাইল 2>&1

সতর্কতা অবলম্বন করুন: ডিবাগিং আউটপুট বিশাল এবং অনেক মেগাবাইট আউটপুট তৈরি করতে পারে।

সিস্টেম যোগ্যতা


আপনার প্রয়োজন পার্ল, ডিবিআই, ডিবিডি::মাইসকিউএল, এবং কিছু মূল প্যাকেজ যা যেকোনো একটিতে ইনস্টল করা উচিত
পার্লের যুক্তিসঙ্গত নতুন সংস্করণ।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে pt-query-digestp ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

লিনাক্স কমান্ডগুলি

Ad




×
ভি .আই. পি  বিজ্ঞাপন
❤️এখানে কেনাকাটা করুন, বুক করুন, অথবা কিনুন — বিনামূল্যে, পরিষেবাগুলি বিনামূল্যে রাখতে সাহায্য করে।