MySQL改變表的儲存引擎,MySQL儲存引擎

來源:互聯網
上載者:User

MySQL改變表的儲存引擎,MySQL儲存引擎
MySQL提供了多種資料庫儲存引擎,儲存引擎負責MySQL資料庫中的資料的儲存和提取。不同的儲存引擎具有不同的特性,有時可能需要將一個已經存在的表的儲存引擎轉換成另外的一個儲存引擎,有很多方法可以完成這種轉換,每一種方法都會有優缺點,應當根據實際情況去選擇,下面講述三種轉換MySQL表引擎的方法:
ALTER TABLE轉換MySQL表引擎最簡單的方法是直接使用ALTER TABLE去修改表的定義。下面的這條語句將mytable表引擎轉換成InnoDBmysql>ALTER TABLE mytable ENGINE = InnoDB;優點:簡單、可以使用於任何的表引擎。缺點:需要執行很長時間,轉換的過程是先定義一個新的引擎表,然後把原表中的資料複製過來。在複製的過程中會消耗系統大量的I/O能力,同時還會在原表上加上讀鎖。所以,在一個非常繁忙的系統中使用這種轉換方式是行不通的,縱然這很簡單。另外,需要注意的是,如果使用這種方式轉換表引擎會失去和原表引擎相關的特性。例如,將一張InnoDB錶轉換成MyISAM表,然後再轉換成InnoDB表,縱然你什麼都沒有做,但是原表中的外鍵將會消失。
匯入和匯出為了更好的控制轉換的過程,可以是使用mysqldump工具將資料匯出到檔案,然後修改檔案中的CREATE TABLE語句的ENGINE選項,注意修改表名,因為一個資料庫中不可能有兩個同名的表,即時它們使用不同的儲存引擎。SHELL>mysqldump   -u   使用者名稱   -p   資料庫名   表名 > 檔案名稱vi修改檔案中的CREATE TABLE語句mysql> source 帶路徑檔案名稱

建立與查詢第三種方式結合了第一種高效和第二種方式安全。不需要匯出整個表的資料,而是先建立一個新的儲存引擎表,然後利用INSERT....SELECT文法來到資料。mysql>CREATE TABLE innodb_table LIKE myisam_table ;mysql>ALTER TABLE innodb_table ENGINE = InnoDB ;mysql>INSERT INTO innodb_table SELECT * FROM myisam_table;
對於MYSQL儲存引擎的問題

查看預設及支援的儲存引擎
mysql> show engines;

查看錶的儲存引擎
mysql> show create table users;

要修改儲存引擎只能在建立表的時候指定或後面修改
CREATE TABLE mytable (id int, titlechar(20)) ENGINE = INNODB

ALTER TABLE engineTest ENGINE = INNODB;

預設儲存引擎沒辦法即時修改(至少我是沒發現修改的方法)
 
mysql中的儲存引擎怎設定?如果是將INNODB改成MYISAM怎改?還有DOS中的MYSQL,怎儲存資料庫,表等對象?

1,mysql中的儲存引擎如何設定?------------預設是myisam,建表的時候也指定,例如: create table test(id int)engine=innodb;
2,如果是將INNODB改成MYISAM怎樣改?--------------------alter table test engine=myisam;
3,還有DOS中的MYSQL,怎樣儲存資料庫,表等對象?-----------------在dos中執行 create database databasename; create table test(id int);這樣就產生了庫和表;對應的系統檔案在mysql的安裝目錄的data下,資料庫名對應一個檔案夾。比如 create database testdb,那麼就能在data目錄下找到testdb目錄;表等對象的檔案要看具體的引擎,如果是myisam引擎,那麼就會有三個檔案,test.frm,test.myi,test.myd三個,innodb的話只有一個test.frm結構檔案,資料和索引檔案都在 ibdata1資料表空間裡。
4,PHP如何和MYSQL串連?是否非要輸入代碼?有沒有別的簡單方法如UI式設定-------------------需要你寫串連資訊,網上給你找了個php串連mysql的例子,你參考下
<?php
$mysql_server_name='localhost'; //改成自己的mysql資料庫伺服器
$mysql_username='root'; //改成自己的mysql資料庫使用者名稱
$mysql_password='198791'; //改成自己的mysql資料庫密碼
$mysql_database='mydb'; //改成自己的mysql資料庫名

$conn=mysql_connect ($mysql_server_name,$mysql_username,$mysql_password,$mysql_database); //從這句開始向下解釋

$sql='insert into book (name,pwd) values ("ggg","ggg");';
//這是一個SQL語句: 向book表中插入一條記錄

mysql_query($sql);
//執行SQL語句

mysql_select_db($mysql_database,$conn); //選擇上面表所在的資料庫(這一句應該在上面一句的前面執行)

$result=mysql_query($sql); //這一句完全是多餘的,和上面的那一個是一樣的!

mysql_close($conn); //關閉資料庫連接
echo "Hello!操作成功!"; //顯示提示資訊

?>
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.