মাইএসকিউএল-এ কখন ব্যবহার করা যায়?


54

বিশ্লেষণে ব্যবহারের জন্য একাধিক থেকে সারণী তৈরি করার সময়, কখন নতুন টেবিল তৈরির তুলনায় ভিউগুলি ব্যবহার করা পছন্দ হয়?

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

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

আমি ভিউগুলি ব্যবহার করা শুরু করেছি, তবে আমি ভিউগুলি সহ কয়েকটি সমস্যা নিয়ে চলেছি:

  1. প্রশ্নগুলি অনেক ধীর
  2. আমি বিশ্লেষণের জন্য ব্যবহার করি ব্যাকআপ ডাটাবেস থেকে উত্পাদন থেকে দৃশ্যগুলি ফেলে দেওয়া হয় না।

মতামত কি এই ব্যবহারের জন্য উপযুক্ত? যদি তাই হয় তবে আমার কি পারফরম্যান্সের শাস্তি আশা করা উচিত? ভিউগুলিতে প্রশ্নগুলির গতি বাড়ানোর কোনও উপায় আছে কি?


দেখে মনে হচ্ছে এখানে মতামত যথাযথ, তবে আমি নিশ্চিত নই যে এগুলি জিজ্ঞাসা করার সময় মন্দার কারণ হতে পারে।
হতাশিত

@ ফ্রাস্ট্রেটেড উইথফোর্ডস ডিজাইনার এমন কোনও ডায়াগনস্টিক রয়েছে যা সাহায্য করবে (একটি পুনরুত্পাদনযোগ্য উদাহরণ তৈরির সংক্ষিপ্ত)? একই যোগদান করা টেবিলগুলিতে সরাসরি সম্পন্ন হওয়ার সময় একই জটিল ক্যোয়ারী <4 এস এবং ভিউগুলিতে করা হলে <25s লাগে। দর্শনগুলি কি পারফরম্যান্স পেনাল্টি না প্রত্যাশা করে?
ডেভিড লেবাউর

আমি মাইএসকিউএল ব্যবহার করেছি তাই অনেক দিন হয়ে গেছে তাই আমি সত্যিই বলতে পারি না।
হতাশ

আমি মাইএসকিউএল ব্যবহার করি এবং আমি আপনাকে বলব যে আপনি 100 কে বা তারপরে উঠলে দর্শনগুলি ভয়ঙ্কর, ব্যবহারযোগ্য নয়, কেবল কোন ক্ষেত্রগুলি ফিরে আসতে হবে এবং কোনটি ব্যবহার করতে যোগ দেবে তার উপর নিয়ন্ত্রণ রয়েছে যেখানে সোজা প্রশ্নগুলি ব্যবহার করুন
স্টিফেন সেনকোমাগো মুসোকে

উত্তর:


43

মাইএসকিউএল মধ্যে দেখার সংখ্যা দুটি ভিন্ন আলগোরিদিম ব্যবহার পরিচালনা করা হয়: MERGEবা TEMPTABLEMERGEউপযুক্ত উপাত্ত সহ কেবল একটি ক্যোয়ারী সম্প্রসারণ। TEMPTABLEএটি দেখতে যা লাগে ঠিক তেমনই দৃষ্টিভঙ্গি ফলাফলটি পুরো দফাটি চালনার আগে অস্থায়ী টেবিলের মধ্যে রাখে এবং এতে কোনও সূচক নেই।

'তৃতীয়' বিকল্পটি UNDEFINED, যা মাইএসকিউএলকে যথাযথ অ্যালগরিদম নির্বাচন করতে বলে। মাইএসকিউএল ব্যবহার করার চেষ্টা করবে MERGEকারণ এটি আরও দক্ষ। প্রধান গুহাত:

যদি MERGE অ্যালগরিদম ব্যবহার না করা যায় তবে পরিবর্তে একটি অস্থায়ী টেবিল ব্যবহার করা উচিত। ভিউতে নিম্নোক্ত যে কোনও নির্মাণ রয়েছে যদি মার্জ ব্যবহার করা যায় না:

  • সমষ্টিগত ফাংশন (SUM (), MIN (), MAX (), COUNT (), এবং আরও)

  • স্বতন্ত্র

  • গ্রুপ দ্বারা

  • উপস্থাপন করে আমরা সহজেই

  • LIMIT টি

  • ইউনিয়ন বা ইউনিয়ন সব

  • নির্বাচনী তালিকায় সাবকিউরি

  • কেবল আক্ষরিক মানগুলিকে বোঝায় (এই ক্ষেত্রে কোনও অন্তর্নিহিত সারণী নেই)

[Src]

আমি অনুমান করার উদ্যোগ নেব যে আপনার ভিউগুলি পারফরম্যান্সের সমস্যার কারণে টেম্পটিবল আলগোরিদম প্রয়োজন requ

এখানে মাইএসকিউএল ভিউয়ের পারফরম্যান্স সম্পর্কে একটি সত্যই পুরানো ব্লগ পোস্ট এবং এটি আরও ভাল হয়েছে বলে মনে হয় না।

ইনডেক্স না থাকা (সম্পূর্ণ টেবিল স্ক্যানের কারণ) অস্থায়ী টেবিলগুলির এই ইস্যুতে টানেলের শেষে কিছুটা আলো থাকতে পারে। ইন 5.6 :

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

@ টাইপক्यूब যেমন উল্লেখ করেছে, মারিয়াডিবি 5.3 একই অপটিমাইজেশন যুক্ত করেছে। এই নিবন্ধটি প্রক্রিয়াটির একটি আকর্ষণীয় ওভারভিউ রয়েছে:

অপ্টিমাইজেশন প্রয়োগ করা হয় তারপরে উত্সযুক্ত টেবিলটি তার প্যারেন্ট SELECT এ একত্রীকরণ করতে পারে নি যা ঘটে যখন টেরযুক্ত টেবিলটি মার্জযোগ্য VIW এর মানদণ্ড পূরণ না করে


আমি এই দাবির বিষয়ে কোনও পরীক্ষা নিই নি তবে মারিয়াডিবি 5.3 (সম্প্রতি স্থিতিশীল হিসাবে প্রকাশিত হয়েছে) অপ্টিমাইজারের সাথে কিছু বড় উন্নতি হয়েছে, ভিউ সহ :Fields of merge-able views and derived tables are involved now in all optimizations employing equalities
ইয়পারক्यूबᵀᴹ

এই লিঙ্কটির জন্য @ টিউবারকিউব ধন্যবাদ ... এটি প্রদর্শিত হয় মাইএসকিউএল 5.6-এ অন্তত প্রাপ্ত টেবিলগুলিতে একটি সূচক যুক্ত করার অপ্টিমাইজেশন রয়েছে।
ডেরেক ডাউনি

14

ভিউগুলি সুরক্ষা সরঞ্জাম। আপনি কোনও নির্দিষ্ট ব্যবহারকারী বা অ্যাপ্লিকেশনটি আপনার ডেটা টেবিলটি কোথায় তা জানতে চান না, আপনি কেবল প্রয়োজনীয় কলামগুলির সাথে একটি ভিউ সরবরাহ করেন।

মনে রাখবেন যে দর্শনগুলি সর্বদা কর্মক্ষমতা হ্রাস করে, অনুরূপ অনুসন্ধানগুলি পদ্ধতি এবং ফাংশনগুলি সংরক্ষণ করা উচিত, না দর্শন।

কোয়েরি টিউন করার জন্য, সর্বদা সেরা অনুশীলনগুলি অনুসরণ করুন, WHERE ধারাগুলিতে ফাংশনগুলি ব্যবহার করা এড়ানো, নির্বাচনগুলিকে গতি বাড়ানোর জন্য সূচী তৈরি করুন, তবে এটির অপব্যবহার করবেন না inোকানো, আপডেটগুলি এবং মুছে ফেলা সূচিগুলি।

এমন একটি ভাল ডকুমেন্টেশন রয়েছে যা আপনাকে সহায়তা করতে পারে: http://www.toadworld.com/LinkClick.aspx?fileticket=3qbwCnzY/0A=&tabid=234


5
আমি একমত নই যে দর্শনগুলি (কেবল) সুরক্ষা সরঞ্জাম। সেগুলি সেভাবে ব্যবহার করা যেতে পারে, তবে আমরা আমাদের প্রতিবেদন বিকাশকারীরা নিয়মিতভাবে ব্যবহার করে এমন প্রশ্নের মধ্যে জটিলতা দূর করতে তাদের ব্যবহার করি।
JHFB

2
@ জেএফএফবি: আমি আপনার সাথে একমত, তবে সম্ভবত এটি কেবল মাইএসকিউএলে কাজ করে যেখানে দেখে মনে হয় মারাত্মক পারফরম্যান্সের শাস্তি লাগে?
হতাশ

@ ফ্রাস্ট্রেটেড উইথফর্মস ডিজাইনার দুর্দান্ত পয়েন্ট - আমি যখন মাইএসকিউএল ব্যবহার করেছি তখন বেশ কিছুক্ষণ হয়ে গেল।
জেএইচএফবি

1
মাইএসকিএল-এ @ জেএফএফবি ভিউগুলি একটি দুর্দান্ত সমস্যা! mysqlperformanceblog.com/2007/08/12/…
রেইনিয়ার

2
@ রিনিয়ারমরিলা দেখছে পারফরম্যান্স হ্রাস !!
সুহেল গুপ্ত

-2

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


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