真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql怎么增加引擎 mysql引擎的作用

linux下,我安裝的mysql沒有innodb引擎,怎么加上

首先確定,在mysql的'plugin_dir'下有ha_innodb_plugin.so和ha_innodb.so兩個文件

成都創(chuàng)新互聯(lián)公司專注于巫溪網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供巫溪營銷型網(wǎng)站建設(shè),巫溪網(wǎng)站制作、巫溪網(wǎng)頁設(shè)計、巫溪網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造巫溪網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供巫溪網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

查詢'plugin_dir'的路徑可以用以下命令

mysql show variables like 'plugin_dir';

+---------------+-----------------------------------+

| Variable_name | Value |

+---------------+-----------------------------------+

| plugin_dir | /usr/local/mysql/lib/mysql/plugin |

+---------------+-----------------------------------+

1 row in set (0.01 sec)

如果沒有找到,在您的mysql編譯目錄里有下面的目錄文件(內(nèi)置的innodb和innodb_plugin)

storage/innobase/.libs/ha_innodb.so

storage/innodb_plugin/.libs/ha_innodb_plugin.so

您需要把它們(ha_innodb_plugin.so和ha_innodb.so)拷貝到mysql的plugin目錄中(/usr/local/mysql/lib/mysql/plugin)

接下來就是在mysql命令行安裝一下

# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 18

Server version: 5.1.36-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql show engines;

+------------+---------+-----------------------------------------------------------+--------------+------+------------+

| Engine | Support | Comment | Transactions | XA | Savepoints |

+------------+---------+-----------------------------------------------------------+--------------+------+------------+

| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |

| CSV | YES | CSV storage engine | NO | NO | NO |

| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |

| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |

+------------+---------+-----------------------------------------------------------+--------------+------+------------+

4 rows in set (0.00 sec)

mysql INSTALL PLUGIN InnoDB SONAME 'ha_innodb.so';

Query OK, 0 rows affected (0.69 sec)

mysql show engines;

+------------+---------+------------------------------------------------------------+--------------+------+------------+

| Engine | Support | Comment | Transactions | XA | Savepoints |

+------------+---------+------------------------------------------------------------+--------------+------+------------+

| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |

| CSV | YES | CSV storage engine | NO | NO | NO |

| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |

| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |

| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |

+------------+---------+------------------------------------------------------------+--------------+------+------------+

5 rows in set (0.00 sec)

OK,大功告成

mysql怎么啟用innodb數(shù)據(jù)庫引擎

臨時表的存儲引擎

在 MySQL 5.6 之前,所有磁盤上的臨時表都默認(rèn)創(chuàng)建為 MyISAM 類型。臨時表是在內(nèi)存中,還是在磁盤上創(chuàng)建,具體取決于配置,并在查詢結(jié)束時立即刪除。從 MySQL 5.7 開始,它們默認(rèn)創(chuàng)建為 InnoDB 類型。

新默認(rèn)值可提升整體性能,大多數(shù)情況下都是最佳選擇。

可以使用新的配置項來設(shè)置臨時表的存儲引擎:internal_tmp_disk_storage_engine ,可選值為 InnoDB(默認(rèn))或 MyISAM。

InnoDB 類型的臨時表存在的潛在問題

盡管使用 InnoDB 是性能最佳的,但可能會出現(xiàn)新的潛在問題。在某些特定情況下,您可能會出現(xiàn)磁盤耗盡和服務(wù)器中斷。

與數(shù)據(jù)庫中的任何其他 InnoDB 表一樣,臨時表具有自己的表空間文件。新文件與通用表空間一起位于數(shù)據(jù)目錄中,名稱為 ibtmp1。它存儲所有 tmp 表。不運行手動運行 OPTIMIZE TABLE,表空間文件就會不斷增長。如果你不能使用 OPTIMIZE,那么唯一能將 ibtmp1 大小縮小為零的方法,就是重新啟動服務(wù)器。幸運的是,即使文件無法減小,在執(zhí)行查詢后,臨時表也會自動刪除,表空間可回收使用?,F(xiàn)在,我們想一想以下情境:

存在未優(yōu)化的查詢,需要在磁盤上創(chuàng)建非常大的的臨時表

存在優(yōu)化的查詢,但他們正在磁盤上創(chuàng)建非常大的臨時表,因為你正在對此數(shù)據(jù)集進(jìn)行計算(統(tǒng)計,分析)

高并發(fā)連接時,運行相同的查詢,伴隨臨時表的創(chuàng)建

沒有很多可用空間

在這些情況下,文件 ibtmp1 大大增加,很容易耗盡可用空間。這種情況每天發(fā)生幾次,并且必須重啟服務(wù)器才能完全縮小 ibtmp1 表空間。使用不可收縮的文件可以輕松耗盡磁盤空間!

MySQL數(shù)據(jù)庫存儲引擎詳解

存儲引擎是什么?

MySQL中的數(shù)據(jù)用各種不同的技術(shù)存儲在文件(或者內(nèi)存)中 這些技術(shù)中的每一種技術(shù)都使用不同的存儲機制 索引技巧 鎖定水平并且最終提供廣泛的不同的功能和能力 通過選擇不同的技術(shù) 你能夠獲得額外的速度或者功能 從而改善你的應(yīng)用的整體功能

例如 如果你在研究大量的臨時數(shù)據(jù) 你也許需要使用內(nèi)存存儲引擎 內(nèi)存存儲引擎能夠在內(nèi)存中存儲所有的表格數(shù)據(jù) 又或者 你也許需要一個支持事務(wù)處理的數(shù)據(jù)庫(以確保事務(wù)處理不成功時數(shù)據(jù)的回退能力)

這些不同的技術(shù)以及配套的相關(guān)功能在MySQL中被稱作存儲引擎(也稱作表類型) MySQL默認(rèn)配置了許多不同的存儲引擎 可以預(yù)先設(shè)置或者在MySQL服務(wù)器中啟用 你可以選擇適用于服務(wù)器 數(shù)據(jù)庫和表格的存儲引擎 以便在選擇如何存儲你的信息 如何檢索這些信息以及你需要你的數(shù)據(jù)結(jié)合什么性能和功能的時候為你提供最大的靈活性

選擇如何存儲和檢索你的數(shù)據(jù)的這種靈活性是MySQL為什么如此受歡迎的主要原因 其它數(shù)據(jù)庫系統(tǒng)(包括大多數(shù)商業(yè)選擇)僅支持一種類型的數(shù)據(jù)存儲 遺憾的是 其它類型的數(shù)據(jù)庫解決方案采取的 一個尺碼滿足一切需求 的方式意味著你要么就犧牲一些性能 要么你就用幾個小時甚至幾天的時間詳細(xì)調(diào)整你的數(shù)據(jù)庫 使用MySQL 我們僅需要修改我們使用的存儲引擎就可以了

在這篇文章中 我們不準(zhǔn)備集中討論不同的存儲引擎的技術(shù)方面的問題(盡管我們不可避免地要研究這些因素的某些方面) 相反 我們將集中介紹這些不同的引擎分別最適應(yīng)哪種需求和如何啟用不同的存儲引擎 為了實現(xiàn)這個目的 在介紹每一個存儲引擎的具體情況之前 我們必須要了解一些基本的問題

如何確定有哪些存儲引擎可用

你可以在MySQL(假設(shè)是MySQL服務(wù)器 以上版本)中使用顯示引擎的命令得到一個可用引擎的列表

mysql?show?engines; ?? + + + + ?? |?Engine?????|?Support?|?Comment????????????????????????????????????????????????????| ?? + + + + ?? |?MyISAM?????|?DEFAULT?|?Default?engine?as?of?MySQL? ?with?great?performance?????| ?? |?HEAP???????|?YES?????|?Alias?for?MEMORY???????????????????????????????????????????| ?? |?MEMORY?????|?YES?????|?Hash?based ?stored?in?memory ?useful?for?temporary?tables??| ?? |?MERGE??????|?YES?????|?Collection?of?identical?MyISAM?tables??????????????????????| ?? |?MRG_MYISAM?|?YES?????|?Alias?for?MERGE????????????????????????????????????????????| ?? |?ISAM???????|?NO??????|?Obsolete?storage?engine ?now?replaced?by?MyISAM????????????| ?? |?MRG_ISAM???|?NO??????|?Obsolete?storage?engine ?now?replaced?by?MERGE?????????????| ?? |?InnoDB?????|?YES?????|?Supports?transactions ?row level?locking ?and?foreign?keys?| ?? |?INNOBASE???|?YES?????|?Alias?for?INNODB???????????????????????????????????????????| ?? |?BDB????????|?NO??????|?Supports?transactions?and?page level?locking???????????????| ?? |?BERKELEYDB?|?NO??????|?Alias?for?BDB??????????????????????????????????????????????| ?? |?NDBCLUSTER?|?NO??????|?Clustered ?fault tolerant ?memory based?tables?????????????| ?? |?NDB????????|?NO??????|?Alias?for?NDBCLUSTER???????????????????????????????????????| ?? |?EXAMPLE????|?NO??????|?Example?storage?engine?????????????????????????????????????| ?? |?ARCHIVE????|?NO??????|?Archive?storage?engine?????????????????????????????????????| ?? |?CSV????????|?NO??????|?CSV?storage?engine?????????????????????????????????????????| ?? + + + + ?? ?rows?in?set?( ?sec)??

這個表格顯示了可用的數(shù)據(jù)庫引擎的全部名單以及在當(dāng)前的數(shù)據(jù)庫服務(wù)器中是否支持這些引擎

對于MySQL 以前版本 可以使用mysql show variables like have_% (顯示類似 have_% 的變量):

mysql?show?variables?like? have_% ;? ?? + + +? ?? |?Variable_name????|?Value????|? ?? + + +? ?? |?have_bdb?????????|?YES??????|? ?? |?have_crypt???????|?YES??????|? ?? |?have_innodb??????|?DISABLED?|? ?? |?have_isam????????|?YES??????|? ?? |?have_raid????????|?YES??????|? ?? |?have_symlink?????|?YES??????|? ?? |?have_openssl?????|?YES??????|? ?? |?have_query_cache?|?YES??????|? ?? + + +? ?? ?rows?in?set?( ?sec)? ??

你可以通過修改設(shè)置腳本中的選項來設(shè)置在MySQL安裝軟件中可用的引擎 如果你在使用一個預(yù)先包裝好的MySQL二進(jìn)制發(fā)布版軟件 那么 這個軟件就包含了常用的引擎 然而 需要指出的是 如果你要使用某些不常用的引擎 特別是CSV RCHIVE(存檔)和BLACKHOLE(黑洞)引擎 你就需要手工重新編譯MySQL源碼

使用一個指定的存儲引擎

你可以使用很多方法指定一個要使用的存儲引擎 最簡單的方法是 如果你喜歡一種能滿足你的大多數(shù)數(shù)據(jù)庫需求的存儲引擎 你可以在MySQL設(shè)置文件中設(shè)置一個默認(rèn)的引擎類型(使用storage_engine 選項)或者在啟動數(shù)據(jù)庫服務(wù)器時在命令行后面加上 default storage engine或 default table type選項

更靈活的方式是在隨MySQL服務(wù)器發(fā)布同時提供的MySQL客戶端時指定使用的存儲引擎 最直接的方式是在創(chuàng)建表時指定存儲引擎的類型 向下面這樣:

CREATE TABLE mytable (id int title char( )) ENGINE = INNODB

你還可以改變現(xiàn)有的表使用的存儲引擎 用以下語句:

ALTER TABLE mytable ENGINE = MyISAM

然而 你在以這種方式修改表格類型的時候需要非常仔細(xì) 因為對不支持同樣的索引 字段類型或者表大小的一個類型進(jìn)行修改可能使你丟失數(shù)據(jù) 如果你指定一個在你的當(dāng)前的數(shù)據(jù)庫中不存在的一個存儲引擎 那么就會創(chuàng)建一個MyISAM(默認(rèn)的)類型的表

各存儲引擎之間的區(qū)別

為了做出選擇哪一個存儲引擎的決定 我們首先需要考慮每一個存儲引擎提供了哪些不同的核心功能 這種功能使我們能夠把不同的存儲引擎區(qū)別開來 我們一般把這些核心功能分為四類:支持的字段和數(shù)據(jù)類型 鎖定類型 索引和處理 一些引擎具有能過促使你做出決定的獨特的功能 我們一會兒再仔細(xì)研究這些具體問題

字段和數(shù)據(jù)類型

雖然所有這些引擎都支持通用的數(shù)據(jù)類型 例如整型 實型和字符型等 但是 并不是所有的引擎都支持其它的字段類型 特別是BLOG(二進(jìn)制大對象)或者TEXT文本類型 其它引擎也許僅支持有限的字符寬度和數(shù)據(jù)大小

這些局限性可能直接影響到你可以存儲的數(shù)據(jù) 同時也可能會對你實施的搜索的類型或者你對那些信息創(chuàng)建的索引產(chǎn)生間接的影響 這些區(qū)別能夠影響你的應(yīng)用程序的性能和功能 因為你必須要根據(jù)你要存儲的數(shù)據(jù)類型選擇對需要的存儲引擎的功能做出決策

鎖定

數(shù)據(jù)庫引擎中的鎖定功能決定了如何管理信息的訪問和更新 當(dāng)數(shù)據(jù)庫中的一個對象為信息更新鎖定了 在更新完成之前 其它處理不能修改這個數(shù)據(jù)(在某些情況下還不允許讀這種數(shù)據(jù))

鎖定不僅影響許多不同的應(yīng)用程序如何更新數(shù)據(jù)庫中的信息 而且還影響對那個數(shù)據(jù)的查詢 這是因為查詢可能要訪問正在被修改或者更新的數(shù)據(jù) 總的來說 這種延遲是很小的 大多數(shù)鎖定機制主要是為了防止多個處理更新同一個數(shù)據(jù) 由于向數(shù)據(jù)中插入信息和更新信息這兩種情況都需要鎖定 你可以想象 多個應(yīng)用程序使用同一個數(shù)據(jù)庫可能會有很大的影響

不同的存儲引擎在不同的對象級別支持鎖定 而且這些級別將影響可以同時訪問的信息 得到支持的級別有三種:表鎖定 塊鎖定和行鎖定 支持最多的是表鎖定 這種鎖定是在MyISAM中提供的 在數(shù)據(jù)更新時 它鎖定了整個表 這就防止了許多應(yīng)用程序同時更新一個具體的表 這對應(yīng)用很多的多用戶數(shù)據(jù)庫有很大的影響 因為它延遲了更新的過程

頁級鎖定使用Berkeley DB引擎 并且根據(jù)上載的信息頁( KB)鎖定數(shù)據(jù) 當(dāng)在數(shù)據(jù)庫的很多地方進(jìn)行更新的時候 這種鎖定不會出現(xiàn)什么問題 但是 由于增加幾行信息就要鎖定數(shù)據(jù)結(jié)構(gòu)的最后 KB 當(dāng)需要增加大量的行 也別是大量的小型數(shù)據(jù) 就會帶來問題

行級鎖定提供了最佳的并行訪問功能 一個表中只有一行數(shù)據(jù)被鎖定 這就意味著很多應(yīng)用程序能夠更新同一個表中的不同行的數(shù)據(jù) 而不會引起鎖定的問題 只有InnoDB存儲引擎支持行級鎖定

建立索引

建立索引在搜索和恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的時候能夠顯著提高性能 不同的存儲引擎提供不同的制作索引的技術(shù) 有些技術(shù)也許會更適合你存儲的數(shù)據(jù)類型

有些存儲引擎根本就不支持索引 其原因可能是它們使用基本表索引(如MERGE引擎)或者是因為數(shù)據(jù)存儲的方式不允許索引(例如FEDERATED或者BLACKHOLE引擎)

事務(wù)處理

事務(wù)處理功能通過提供在向表中更新和插入信息期間的可靠性 這種可靠性是通過如下方法實現(xiàn)的 它允許你更新表中的數(shù)據(jù) 但僅當(dāng)應(yīng)用的應(yīng)用程序的所有相關(guān)操作完全完成后才接受你對表的更改 例如 在會計處理中每一筆會計分錄處理將包括對借方科目和貸方科目數(shù)據(jù)的更改 你需要要使用事務(wù)處理功能保證對借方科目和貸方科目的數(shù)據(jù)更改都順利完成 才接受所做的修改 如果任一項操作失敗了 你都可以取消這個事務(wù)處理 這些修改就不存在了 如果這個事務(wù)處理過程完成了 我們可以通過允許這個修改來確認(rèn)這個操作

lishixinzhi/Article/program/MySQL/201311/29301

如何為mysql數(shù)據(jù)庫添加新的存儲引擎

mysql 5.5以前默認(rèn)的引擎是myisam,5.5以后是innodb,引擎可以在創(chuàng)建表的時候指定,如下:

Ceate table test

(id int,name varchar(10))

engine innodb;

修改:

alter table test type=innodb;

如果想設(shè)置缺省引擎可以在配置文件的mysqld添加一行:

default-storage-engine=INNODB;

mysql源碼怎么調(diào)用引擎

mysql源碼調(diào)用引擎步驟:

1、打開mysql的命令行。

2、輸入數(shù)據(jù)庫密碼。

3、查詢默認(rèn)數(shù)據(jù)庫引擎。

4、默認(rèn)的引擎是InnoDB,修改即可。

如何修改mysql表的存儲引擎?

1、修改表引擎方法\x0d\x0a alter table table_name engine=innodb;\x0d\x0a2、查看系統(tǒng)支持的存儲引擎\x0d\x0a show engines;\x0d\x0a3、查看表使用的存儲引擎\x0d\x0a 兩種方法:\x0d\x0a a、show table status from db_name where name='table_name';\x0d\x0a b、show create table table_name;\x0d\x0a 如果顯示的格式不好看,可以用\g代替行尾分號 \x0d\x0a 有人說用第二種方法不準(zhǔn)確\x0d\x0a 我試了下,關(guān)閉掉原先默認(rèn)的Innodb引擎后根本無法執(zhí)行show create table table_name指令,因為之前建的是Innodb表,關(guān)掉后默認(rèn)用MyISAM引擎,導(dǎo)致Innodb表數(shù)據(jù)無法被正確讀取。\x0d\x0a4 關(guān)閉Innodb引擎方法\x0d\x0a 關(guān)閉mysql服務(wù): net stop mysql\x0d\x0a 找到mysql安裝目錄下的my.ini文件:\x0d\x0a 找到default-storage-engine=INNODB 改為default-storage-engine=MYISAM\x0d\x0a 找到#skip-innodb 改為skip-innodb\x0d\x0a 啟動mysql服務(wù):net start mysql


新聞名稱:mysql怎么增加引擎 mysql引擎的作用
路徑分享:http://weahome.cn/article/hhcegc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部