freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

本章對(duì)數(shù)據(jù)庫技術(shù)的發(fā)展概況作了簡(jiǎn)要的說明-資料下載頁

2025-07-06 17:09本頁面
  

【正文】 來緩存數(shù)據(jù)和索引。InnoDB在一個(gè)表空間中存儲(chǔ)表和索引,表空間可以包含數(shù)個(gè)文件(或原始磁盤分區(qū))。這與MyISAM表不同,在MyISAM表中每個(gè)表被存在單獨(dú)的文件中,因此即使在文件大小被限制在2GB的文件系統(tǒng)上,InnoDB 表也可以是任意大小的。InnoDB默認(rèn)地被包含在MySQL二進(jìn)制版本中。在Windows Essentials installer安裝中,InnoDB是Windows上MySQL的默認(rèn)引擎。 InnoDB被用來在眾多需要高性能的大型數(shù)據(jù)庫站點(diǎn)上產(chǎn)生。Mytrix,還有一些其他站點(diǎn)在InnoDB上處理平均每秒800次插入/更新的負(fù)荷。 2.InnoDB配置InnoDB存儲(chǔ)引擎默認(rèn)是可以使用的。如果不想用InnoDB表。InnoDB存儲(chǔ)引擎管理兩個(gè)重要的文件,即InnoDB表空間數(shù)據(jù)文件和它的日志文件。如果沒有對(duì)InnoDB進(jìn)行配置,MySQL會(huì)在MySQL數(shù)據(jù)目錄下創(chuàng)建一個(gè)名為ibdata1的10MB大小的自動(dòng)擴(kuò)展數(shù)據(jù)文件,以及兩個(gè)名為ib_logfile0和ib_logfile1的5MB大小的日志文件。要建立InnoDB表空間文件,[MySQLd]節(jié)中使用innodb_ data_file_path選項(xiàng)。innodb_data_file_path的值應(yīng)該為一個(gè)或多個(gè)數(shù)據(jù)文件規(guī)格的列表。如果命名一個(gè)以上的數(shù)據(jù)文件,用分號(hào)(。)分隔它們,文件大小用M或者G后綴來指定說明單位是MB或者GB。一個(gè)指定的數(shù)據(jù)文件規(guī)格可以包含文件名、文件大小、自動(dòng)擴(kuò)展選項(xiàng)和文件最大值,如:file_name:file_size[:autoextend[:max:max_file_size]]autoextend及其后面的屬性只可用來配置innodb_data_file_path行中最后一個(gè)數(shù)據(jù)文件。 如果對(duì)最后的數(shù)據(jù)文件指定autoextend選項(xiàng),當(dāng)數(shù)據(jù)文件耗盡了表空間中的自由空間時(shí),InnoDB就會(huì)擴(kuò)展此數(shù)據(jù)文件。擴(kuò)展的幅度是每次8MB。 配置文件中采用如下形式:innodb_data_file_path=datafile_spec1[。datafile_spec2]...例如:[MySQLd]innodb_data_file_path=ibdata1:10M:autoextend這個(gè)設(shè)置配置一個(gè)可擴(kuò)展大小的尺寸為10MB的單獨(dú)文件,名為ibdata1。沒有給出文件的位置,所以默認(rèn)的是在MySQL的數(shù)據(jù)目錄內(nèi)。[MySQLd]innodb_data_file_path=ibdata1:50M。ibdata2:50M:autoextend這個(gè)配置指定的表空間在數(shù)據(jù)目錄中包含一個(gè)名為ibdata1的固定尺寸50MB的數(shù)據(jù)文件和一個(gè)名為ibdata大小為50MB的自動(dòng)擴(kuò)展文件。 InnoDB并不感知最大文件尺寸,所以要注意文件系統(tǒng),單個(gè)數(shù)據(jù)文件的大小不能超過文件系統(tǒng)支持的最大值。要為一個(gè)自動(dòng)擴(kuò)展數(shù)據(jù)文件指定最大尺寸,可以使用max屬性。下列配置允許ibdata1漲到極限的500MB:[MySQLd]innodb_data_file_path=ibdata1:10M:autoextend:max:500MInnoDB默認(rèn)地在MySQL數(shù)據(jù)目錄中創(chuàng)建表空間文件。要明確指定一個(gè)位置,可使用innodb_data_home_dir選項(xiàng)。例如,要使用兩個(gè)名為ibdata1和ibdata2的文件,但要把它們創(chuàng)建到/ibdata,像如下一樣配置InnoDB:[MySQLd]innodb_data_home_dir = /ibdatainnodb_data_file_path=ibdata1:50M。ibdata2:50M:autoextend3.創(chuàng)建InnoDB表要?jiǎng)?chuàng)建一個(gè)InnoDB表,必須在表創(chuàng)建SQL語句中指定ENGINE = InnoDB或者TYPE = InnoDB選項(xiàng): CREATE TABLE customer (a INT, b CHAR (20), INDEX (a)) ENGINE=InnoDB。CREATE TABLE customer (a INT, b CHAR (20), INDEX (a)) TYPE=InnoDB。以上SQL語句在表空間的列上創(chuàng)建一個(gè)表和索引。此外。同時(shí),InnoDB會(huì)在自己的數(shù)據(jù)目錄中為39。test/customer39。表添加一個(gè)表項(xiàng)。也就是說,可以在其他數(shù)據(jù)庫創(chuàng)建一個(gè)具有相同名字customer的表,表的名字不會(huì)與InnoDB內(nèi)的沖突??梢詫?duì)任何InnoDB表,通過使用SHOW TABLE STATUS語句,查詢?cè)贗nnoDB表空間內(nèi)空閑空間的數(shù)量。表空間內(nèi)空閑空間的數(shù)量出現(xiàn)在SHOWTABLESTATUS的輸出結(jié)果內(nèi)的Comment節(jié)中。例如:SHOW TABLE STATUS FROM test LIKE 39。customer39。注意,SHOW只給出關(guān)于InnoDB表的大致統(tǒng)計(jì)情況。 默認(rèn)情況下,每個(gè)連接到MySQL服務(wù)器的客戶端最初是使用自動(dòng)提交模式的,這個(gè)模式自動(dòng)提交需要運(yùn)行的每個(gè)SQL語句。要使用多語句事務(wù),可以用SQL語句SETAUTOCOMMIT = 0禁止自動(dòng)提交,并且用COMMIT和ROLLBACK來提交或回滾事務(wù)。 如果AUTOCOMMIT保持打開狀態(tài),則可以在STARTTRANSACTION與COMMIT或ROLLBACK之間封裝一個(gè)事務(wù),下列的例子演示兩個(gè)事務(wù),第一個(gè)是被提交的,第二個(gè)是被回滾的。shell MySQL testWele to the MySQL monitor. Commands end with 。 or \g.Your MySQL connection id is 5 to server version: Type 39。help。39。 or 39。\h39。 for help. Type 39。\c39。 to clear the buffer.MySQL CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A)) ENGINE=InnoDB。Query OK, 0 rows affected ( sec)MySQL BEGIN。Query OK, 0 rows affected ( sec)MySQL INSERT INTO CUSTOMER VALUES (10, 39。Heikki39。)。Query OK, 1 row affected ( sec)MySQL COMMIT。Query OK, 0 rows affected ( sec)MySQL SET AUTOCOMMIT=0。Query OK, 0 rows affected ( sec)MySQL INSERT INTO CUSTOMER VALUES (15, 39。John39。)。Query OK, 1 row affected ( sec)MySQL ROLLBACK。Query OK, 0 rows affected ( sec)MySQL SELECT * FROM CUSTOMER。+++| A | B |+++| 10 | Heikki |+++1 row in set ( sec)在類似PHP、PerlDBI/DBD、JDBC、ODBC或者M(jìn)ySQL的標(biāo)準(zhǔn)C調(diào)用接口這樣的API上,能夠以字符串形式發(fā)送事務(wù)控制語句,如發(fā)送COMMIT到MySQL服務(wù)器,就像執(zhí)行其他任何的SQL語句那樣,諸如SELECT或INSERT。一些API也提供單獨(dú)的專門的事務(wù)提交和回滾函數(shù)或者方法。 4.轉(zhuǎn)換MyISAM表到InnoDBMyISAM表可以根據(jù)需要轉(zhuǎn)換為InnoDB表,但是不應(yīng)該在MySQL數(shù)據(jù)庫中把MySQL系統(tǒng)表轉(zhuǎn)換為InnoDB類型。系統(tǒng)表總是MyISAM類型的。 如果需要所有(非系統(tǒng))表都定義成InnoDB表,可以簡(jiǎn)單地把defaulttabletype=[MySQLd]段中,將InnoDB指定為默認(rèn)的存儲(chǔ)引擎。InnoDB不像MyISAM存儲(chǔ)引擎對(duì)索引創(chuàng)建進(jìn)行專門的優(yōu)化。因此在導(dǎo)出表后創(chuàng)建索引并不能提高數(shù)據(jù)庫的性能。將一個(gè)表轉(zhuǎn)化為InnoDB表的最快捷的方法是使用ALTER TABLE...ENGINE=INNODB語句,將表指定為InnoDB存儲(chǔ)引擎。也可以先新建一個(gè)結(jié)構(gòu)和MyISAM表相同的InnoDB表,然后使用INSERT INTO ... SELECT * FROM ...將MyISAM中的數(shù)據(jù)插入InnoDB表中。在插入數(shù)據(jù)的過程中,如果在某個(gè)鍵上有UNIQUE約束,可以在導(dǎo)入階段設(shè)置:SET UNIQUE_CHECKS=0,臨時(shí)關(guān)掉唯一性檢查以加速表的導(dǎo)入。對(duì)于大表,這節(jié)省了大量的磁盤I/O操作。例如:SET UNIQUE_CHECKS=0。... import operation...SET UNIQUE_CHECKS=1。插入大量數(shù)據(jù)最好使用分段插入的方式,例如: INSERT INTO newtable SELECT * FROM oldtable WHERE yourkey something AND yourkey = somethingelse。所有記錄已經(jīng)被插入之后,可以重命名表。在大表的轉(zhuǎn)換中,雖然可以增加InnoDB緩沖池的大小來減少磁盤I/O,提高數(shù)據(jù)插入效率,但是不要使用超過80%的物理內(nèi)存。 導(dǎo)入過程中,需要確保磁盤有足夠的空間:InnoDB表比MyISAM表需要更多的磁盤空間。如果一個(gè)ALTERTABLE耗盡了空間,它就開始一個(gè)回滾,回滾可能要幾個(gè)小時(shí)。由于對(duì)插入操作做了特別的優(yōu)化,因此,同樣數(shù)據(jù)量的回滾要比插入多花30倍的時(shí)間。在回滾失控的情況下,如果數(shù)據(jù)庫中沒有有價(jià)值的數(shù)據(jù),比較明智的是殺掉數(shù)據(jù)庫進(jìn)程而不是等幾百萬個(gè)磁盤I/O完成。 小 結(jié)通過本章的學(xué)習(xí),讀者應(yīng)該對(duì)數(shù)據(jù)庫建立了基本的概念。同時(shí),應(yīng)該去試著了解如SQL Server、Oracle等常用數(shù)據(jù)庫,重點(diǎn)理解MySQL數(shù)據(jù)庫,明白與其他數(shù)據(jù)庫相比,MySQL數(shù)據(jù)庫的優(yōu)勢(shì)所在。同時(shí),需要對(duì)MySQL數(shù)據(jù)庫的體系結(jié)構(gòu)有一定了解,理解MySQL的各種存儲(chǔ)引擎及其特點(diǎn),重點(diǎn)掌握MyISAM存儲(chǔ)引擎和InnoDB存儲(chǔ)引擎。25 /
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1