2012-04-23 28 views
22

Cách chuyển đổi công cụ lưu trữ cơ sở dữ liệu từ InnoDB thành MyISAM trên MySQL? Tôi tìm thấy rất nhiều trang web chuyển đổi công cụ lưu trữ của bảng cơ sở dữ liệu, nhưng không phải cho cơ sở dữ liệu. i attached screen shot for better understandMySql - Chuyển đổi InnoDB sang Cơ sở dữ liệu lưu trữ MyISAM

Xin cảm ơn trước.

+0

Bạn có nghĩa là bạn đã thử điều này? [http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.html](http://dev.mysql.com/doc/refman/5.0/en/converting- tables-to-innodb.html) –

+0

Tôi muốn chuyển đổi cơ sở dữ liệu không phải bảng. Liên kết này mà bạn đã cung cấp là để chuyển đổi bảng không phải là cơ sở dữ liệu –

+0

Guys nếu câu hỏi này hữu ích, bạn có thể upvote cũng không chỉ ... –

Trả lời

11

Bạn không thể thay đổi công cụ lưu trữ mặc định cho cơ sở dữ liệu, nhưng bạn có thể thay đổi nó cho toàn bộ máy chủ bằng cách sử dụng cài đặt cấu hình default-storage-engine. Lưu ý rằng điều này sẽ không thực sự thay đổi công cụ lưu trữ cho các bảng hiện có mặc dù chỉ dành cho các công cụ mới được tạo sau khi thay đổi.

+0

Cảm ơn câu trả lời nó giúp tôi & có xin lỗi vì trả lời muộn. –

8

Cơ sở dữ liệu chỉ là cách thực hiện không gian tên của MySQL, vì cơ sở dữ liệu không có công cụ liên quan đến nó, chỉ các bảng có công cụ lưu trữ. Đó là lý do tại sao bạn có thể có một cơ sở dữ liệu với nhiều bảng khác nhau, mỗi bảng có một công cụ khác nhau.

Bạn sẽ phải sửa đổi từng bảng một để chuyển đổi chúng thành InnoDB.

12
ALTER TABLE `table_name` ENGINE=INNODB 
35

sử dụng quyền này !!

SET storage_engine=MYISAM; 
ALTER TABLE table_name ENGINE = MyISAM; 

-cheers !!

+0

Tôi muốn chuyển đổi InnoDB thành công cụ lưu trữ MyISAM của cơ sở dữ liệu không có bảng. –

+2

Cảm ơn. Điều này đã cứu tôi rất nhiều thời gian. Khi tôi đã làm điều này trên một Raspberry PI chạy MySQL (mariadb), hệ thống cuối cùng đã ngừng khóa khi thực hiện chèn lớn hoặc cập nhật. Tức là 10x nhanh hơn –

3

để làm cho nó vĩnh viễn, thêm vào my.cnf (vài địa điểm tùy thuộc vào ngữ cảnh)

/etc/my.cnf

default-storage-engine= MyISAM

cho sự an toàn, sản lượng danh sách db với chương trình cơ sở dữ liệu;

trong trường hợp của tôi, sử dụng php cho quickie ..

$db = mysql_connect('localhost','someadmin','somepass'); 
$dbs = array(); 
$dbs[] = 'test'; 
$dbs[] = 'myImportantDb'; 

foreach($dbs as $v){ 
    mysql_select_db($v); 
    $q = mysql_query('show tables'); 
    $tables = array(); 
    while($r = mysql_fetch_row($q)){ 
      $tables[] = $r[0]; 
    } 
    foreach($tables as $t){ 
     echo "do $v.$t\n"; 
     mysql_query('ALTER TABLE `'.$t.'` ENGINE=MyISAM;'); 
    } 
} 
mysql_close($db); 
1

trong phpMyAdmin 4,5 Chọn biến tab và tìm cho động cơ lưu trữ và Chọn Chỉnh sửa và loại MyISAM.

Các vấn đề liên quan