程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL存儲引擎MyISAM與InnoDB的9點區別,myisaminnodb

MySQL存儲引擎MyISAM與InnoDB的9點區別,myisaminnodb

編輯:MySQL綜合教程

MySQL存儲引擎MyISAM與InnoDB的9點區別,myisaminnodb


雖然MySQL裡的存儲引擎不只是MyISAM與InnoDB這兩個,但常用的就是它倆了。可能有站長並未注意過MySQL的存儲引擎,其實存儲引擎也是數據庫設計裡的一大重要點,那麼博客系統應該使用哪種存儲引擎呢?下面我們分別來看兩種存儲引擎的區別。

MySQL存儲引擎MyISAM與InnoDB的區別

一、InnoDB支持事務,MyISAM不支持,這一點是非常之重要。事務是一種高級的處理方式,如在一些列增刪改中只要哪個出錯還可以回滾還原,而MyISAM就不可以了。

二、MyISAM適合查詢以及插入為主的應用,InnoDB適合頻繁修改以及設計到安全性就高的應用

三、InnoDB支持外鍵,MyISAM不支持

四、MyISAM是默認引擎,InnoDB需要指定

五、InnoDB不支持FULLTEXT類型的索引

六、InnoDB中不保存表的行數,如select count(*) from table時,InnoDB需要掃描一遍整個表來計算有多少行,但是MyISAM只要簡單的讀出保存好的行數即可。注意的是,當count(*)語句包含where條件時MyISAM也需要掃描整個表

七、對於自增長的字段,InnoDB中必須包含只有該字段的索引,但是在MyISAM表中可以和其他字段一起建立聯合索引

八、清空整個表時,InnoDB是一行一行的刪除,效率非常慢。MyISAM則會重建表

九、InnoDB支持行鎖(某些情況下還是鎖整表,如 update table set a=1 where user like '%lee%'

通過以上九點區別,結合個人博客的特點,推薦個人博客系統使用MyISAM,因為在博客裡主要操作是讀取和寫入,很少有鏈式操作。所以選擇MyISAM引擎使你博客打開也頁面的效率要高於InnoDB引擎的博客,當然只是個人的建議,大多數博客還是根據實際情況下謹慎選擇。我的小站目前就使用MyISAM引擎!


Mysql 的存儲引擎,myisam與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!操作成功!"; //顯示提示信息

?>
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved