Sobes.tech
Middle

SQL-ში რა ტიპის ინდექსები არსებობს?

sobes.tech AI

პასუხი AI-სგან

  • B-ডেটা (B-ট্রি): সবচেয়ে সাধারণ ধরনের। বেশিরভাগ পড়ার অপারেশনের জন্য উপযুক্ত, যার মধ্যে রয়েছে WHERE, LIKE, ORDER BY

    CREATE INDEX idx_column ON table_name (column_name);
    
  • Hash (Hash): সঠিক মিলের জন্য অপ্টিমাইজড (=)। ডায়ালেক্টিক অনুরোধ বা সাজানোর জন্য সমর্থন করে না।

    -- সিনট্যাক্সের উদাহরণ, ডেটাবেস ব্যবস্থাপনা সিস্টেমের উপর নির্ভর করে পরিবর্তিত হতে পারে
    CREATE INDEX idx_column ON table_name USING HASH (column_name);
    
  • Full-Text (সম্পূর্ণ পাঠ্য): বড় পাঠ্য ক্ষেত্রগুলিতে (VARCHAR, TEXT) পাঠ্য অনুসন্ধানের জন্য।

    -- MySQL-এ সিনট্যাক্সের উদাহরণ
    CREATE FULLTEXT INDEX idx_text ON table_name (text_column);
    -- PostgreSQL-এ সিনট্যাক্সের উদাহরণ
    CREATE INDEX idx_text ON table_name USING GIN (to_tsvector('bengali', text_column));
    
  • অঞ্চলগত (Spatial): ভূগোলিক ডেটা সূচিবদ্ধ করার জন্য (POINT, LINE, POLYGON)। GEOMETRY বা GEOGRAPHY ধরনের ডেটা টাইপের সাথে ব্যবহৃত হয়।

    -- MySQL-এ সিনট্যাক্সের উদাহরণ
    CREATE SPATIAL INDEX idx_geo ON table_name (spatial_column);
    -- PostgreSQL-এ সিনট্যাক্সের উদাহরণ
    CREATE INDEX idx_geo ON table_name USING GIST (spatial_column);
    
  • GIN (Generalized Inverted Index) এবং GiST (Generalized Search Tree) PostgreSQL-এ: নমনীয় সূচক ধরনের, বিভিন্ন কাজের জন্য উপযুক্ত, যার মধ্যে রয়েছে সম্পূর্ণ পাঠ্য অনুসন্ধান, অ্যারে এবং JSON সূচিবদ্ধকরণ।

  • ক্লাস্টারড (Clustered): টেবিলের শারীরিক ক্রম নির্ধারণ করে। একটি টেবিলে কেবল একটি ক্লাস্টারড সূচক থাকতে পারে। সাধারণত, প্রাথমিক কী ভিত্তিক।

    -- প্রাথমিক কী ঘোষণা করার সময় প্রায়ই ক্লাস্টারড সূচক তৈরি হয়
    CREATE TABLE table_name (
        id INT PRIMARY KEY CLUSTERED, -- SQL Server-এ
        ...
    );
    
  • নন-ক্লাস্টারড (Non-Clustered): আলাদা গঠন, যা "কলামের মান (অথবা কলামগুলি) + সারির নির্দেশক" জোড়া সংরক্ষণ করে। একটি টেবিলে একাধিক নন-ক্লাস্টারড সূচক থাকতে পারে।

তুলনা:

সূচকের ধরন প্রয়োগ অপারেশনসমূহ
B-ডেটা সাধারণ, বেশিরভাগ ডেটা ধরনের জন্য =, <, >, <=, >=, BETWEEN, LIKE (শুরু)
Hash সঠিক মিল (=) =
সম্পূর্ণ পাঠ্য পাঠ্য অনুসন্ধান MATCH AGAINST (MySQL), to_tsquery (PostgreSQL)
অঞ্চলগত ভূগোলিক ডেটা অঞ্চলগত ফাংশনসমূহ
ক্লাস্টারড শারীরিক ক্রমে সারি নির্বাচন নির্বাচন দ্রুত করে
নন-ক্লাস্টারড সূচিবদ্ধ কলাম অনুসন্ধান দ্রুত করে =, <, >, <= ইত্যাদি