আমার ডাটাবেসের কোনও সূচী আছে কিনা তা আমি কীভাবে দেখতে পারি?
কিভাবে একটি নির্দিষ্ট টেবিল জন্য?
আমার ডাটাবেসের কোনও সূচী আছে কিনা তা আমি কীভাবে দেখতে পারি?
কিভাবে একটি নির্দিষ্ট টেবিল জন্য?
উত্তর:
নির্দিষ্ট টেবিলের জন্য সূচকটি দেখতে আইডেক্সটি দেখান:
SHOW INDEX FROM yourtable;
নির্দিষ্ট স্কিমাতে সমস্ত টেবিলের জন্য সূচীগুলি দেখতে আপনি INFORMATION_SCHEMA থেকে STATISTICS টেবিলটি ব্যবহার করতে পারেন:
SELECT DISTINCT
TABLE_NAME,
INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_schema';
ক্লজটি সরিয়ে ফেলা আপনাকে সমস্ত স্কিমায় সমস্ত সূচি প্রদর্শন করবে।
DISTINCT
কীওয়ার্ডটি কিছু সূচকে মুখোশ দেবে - আমার একটি টেবিল রয়েছে যেখানে সূচকের একই নাম রয়েছে তবে দুটি পৃথক কলামে ব্যবহৃত হয়, সুতরাং এখানে তথ্য স্কিমার উদাহরণটি কেবল একটি সূচি প্রদর্শন করবে।
from mydb
লিয়েরকের উত্তরে প্রদর্শিত হিসাবে আমাকে যুক্ত করতে হয়েছিল।
আপনি যদি একবারে সমস্ত ডাটাবেস জুড়ে সমস্ত সূচি দেখতে চান:
use information_schema;
SELECT * FROM statistics;
SELECT * FROM information_schema.statistics;
SHOW INDEX FROM mytable FROM mydb;
SHOW INDEX FROM mydb.mytable;
ডকুমেন্টেশন দেখুন ।
আপনি এই ক্যোয়ারীটি সূচকের সংখ্যা এবং নির্দিষ্ট ডাটাবেসে প্রতিটি টেবিলের সূচকের নামগুলি পেতে ব্যবহার করতে পারেন।
SELECT TABLE_NAME,
COUNT(1) index_count,
GROUP_CONCAT(DISTINCT(index_name) SEPARATOR ',\n ') indexes
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'mydb'
AND INDEX_NAME != 'primary'
GROUP BY TABLE_NAME
ORDER BY COUNT(1) DESC;
আমি এই কোয়েরিটি প্রস্তাব করছি:
SELECT DISTINCT s.*
FROM INFORMATION_SCHEMA.STATISTICS s
LEFT OUTER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t
ON t.TABLE_SCHEMA = s.TABLE_SCHEMA
AND t.TABLE_NAME = s.TABLE_NAME
AND s.INDEX_NAME = t.CONSTRAINT_NAME
WHERE 0 = 0
AND t.CONSTRAINT_NAME IS NULL
AND s.TABLE_SCHEMA = 'YOUR_SCHEMA_SAMPLE';
আপনি সমস্ত সূচি কেবল সূচকটি পেয়েছেন।
বিবেচনা।
সিকোয়েন্স ক্রমের এক কলামে সূচি প্রতি সমস্ত সূচীকরণ কলামগুলি পেতে।
SELECT table_name AS `Table`,
index_name AS `Index`,
GROUP_CONCAT(column_name ORDER BY seq_in_index) AS `Columns`
FROM information_schema.statistics
WHERE table_schema = 'sakila'
GROUP BY 1,2;
সূত্র: http://blog.9minutesnooze.com/mysql-information-schema-indexes/
আপনি মাইএসকিউএল ওয়ার্কবেঞ্চে আপনার সূচিগুলি পরীক্ষা করতে পারেন performance পারফরম্যান্স রিপোর্ট ট্যাবগুলির মাধ্যমে আপনি সিস্টেমে সমস্ত ব্যবহৃত সূচী এবং অব্যবহৃত সূচী দেখতে পারেন। অথবা আপনি ক্যোয়ারী ফায়ার করতে পারেন।
select * from sys.schema_index_statistics;