ডাটাবেসের ব্যবহৃত স্টোরেজ ইঞ্জিনটি কীভাবে জানবেন?


13

পূর্বে, তৈরি প্রতিটি ডাটাবেসে আমি ব্যবহার করি:

mysql -u root -p
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL ON dbname.* TO 'dbuser'@'localhost';

এবং তারপরে মাইআইএসএএম বা ইনোডিবি সম্পর্কে চিন্তা না করে ডাটাবেসটি ব্যবহার করুন

ডাটাবেসের ব্যবহৃত স্টোরেজ ইঞ্জিনটি কীভাবে জানবেন?

উত্তর:


14

আপনি প্রতি টেবিলের মতো এটি পরীক্ষা করতে পারেন:

USE <database>;
SHOW TABLE STATUS\G

আপনি এই লাইন বরাবর একটি আউটপুট পাবেন:

root@localhost/database> show table status\G
*************************** 1. row ***************************
           Name: tablename
         Engine: MyISAM
        Version: 10
     Row_format: Fixed
           Rows: 101
 Avg_row_length: 70
    Data_length: 7070
Max_data_length: 19703248369745919
   Index_length: 2048
      Data_free: 0
 Auto_increment: 1004
    Create_time: 2009-12-07 20:15:53
    Update_time: 2010-11-10 21:55:01
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options: 
        Comment: 

কোনও ডিবিতে সমস্ত টেবিল করা সম্পর্কে আপনি কীভাবে জানেন (ডিবিতে SHOW TABLEপ্রতিটি টেবিলের জন্য একটি স্ক্রিপ্ট লেখার পাশাপাশি )?
voretaq7

2
@ "টেবিল পরিস্থিতি দেখান" voretaq7 আপনাকে ডিফল্টরূপে সমস্ত সারণী দেখায়।
কোপস

দুর্দান্ত - আমি একজন পোস্টগ্রাজের লোক তাই এই সমস্ত মাইএসকিউএল এবং একাধিক স্টোরেজ ইঞ্জিনের জিনিসগুলি আমার কাছে আশ্চর্যজনক :-)
ভোরেটাক

5

সক্রিয় ডিফল্ট ইঞ্জিনটি দেখতে 'শো ইঞ্জিন' কমান্ডটি ব্যবহার করুন

ডিফল্ট ইঞ্জিনটি সক্রিয় হওয়ার জন্য my.cnf ফাইলের [mysqld] বিভাগে ডিফল্ট-স্টোরেজ-ইঞ্জিন = InnoDB যুক্ত করুন।

সারণীতে ডিফল্ট ইঞ্জিনটি দেখতে 'টেবিলের টেবিলের নামটি দেখান' কমান্ডটি ব্যবহার করুন।


SHOW ENGINEআমাকে ERROR 1064 (42000) দেয়।
8:25 এ এমস্ট্র্যাপ করুন

1
show engines;
w00t

4

এই কোয়েরিটি সমস্ত InnoDB টেবিলগুলি এবং মাইএসকিউএলে তাদের ডাটাবেসগুলি তালিকাভুক্ত করে:

SELECT table_name, table_schema 
FROM information_schema.tables 
WHERE engine = 'InnoDB';

আপনি সমস্ত টেবিল এবং তাদের স্টোরেজ ইঞ্জিনগুলি তালিকাভুক্ত করতে পারেন:

SELECT table_name, table_schema, engine
FROM information_schema.tables;

আমি দ্বিতীয় ক্যোয়ারীটি চেষ্টা করেছিলাম - আমি ত্রুটিটি পেয়েছি: ERROR 1146 (42S02): Table 'information_scheme.tables' doesn't exist (মাইএসকিউএল 5.6.37 এ)
nnyby

1

একটি নির্দিষ্ট টেবিলের জন্য ইঞ্জিনের নাম পেতে

use <database_name>
show table status like '<table_name>';

ইঞ্জিন পরিবর্তন করতে

alter table <table_name> engine <engine_name>;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.