lucene 實踐
posted @
2008-05-04 17:46 zhangxl 閱讀(323) |
評論 (1) |
編輯 收藏
待續....
posted @
2006-04-25 11:30 zhangxl 閱讀(460) |
評論 (0) |
編輯 收藏
??????
InnoDB 給 MySQL 提供了具有事務(commit)、回滾(rollback)和崩潰修復能力(crash recovery capabilities)的事務安全(transaction-safe (ACID
compliant))型表。InnoDB 提供了行鎖(locking on row level),提供與 Oracle 類型一致的不加鎖讀取(non-locking read in SELECT
s)。這些特性均提高了多用戶并發操作的性能表現。在InnoDB表中不需要擴大鎖定(lock escalation),因為 InnoDB 的列鎖定(row level locks)適宜非常小的空間。InnoDB 是 MySQL 上第一個提供外鍵約束(FOREIGN KEY
constraints)的表引擎。
????????????要想正常的使用InnoDB帶給我們的好處,首先要建立InnoDB數據庫。示例采用的mysql版本是4.0.12,這個版本屬于mysql的beta版本。假設你的mysql已經安裝完畢,并且采用的是win xp操作系統,接下來我們就要創建InnoDB數據庫。
????????????當創建一個 InnoDB 數據庫時最好以命令行方式來運行 MySQL 服務 mysqld ,而不是從 safe_mysqld 或 Windows 服務。當從命令行方式運行服務時可以看到建立過程。
??????步驟1:通過 MS-DOS的 NET STOP MySQL
命令停止mysql服務。
??????步驟2:修改c:/windows/my.ini文件,主要是設置Innodb的參數。從設置最小的角度考慮,可以
?????????????設置一下幾項:
???????????????innodb_data_home_dir??????????????????????????????????/*innodb數據庫數據文件目錄*/
???????????????innodb_data_file_path??????????????????????????????????/*數據文件名稱及大小*/
???????????????????????innodb_buffer_pool_size????????????????????? /*緩沖池的大小,一般設置為主存的50%-80%*/
???????????????innodb_additional_mem_pool_size????????????/**/
???????????????innodb_log_file_size???????????????????????????????????/*日志文件的大小,一般設置為主存的25%*/
???????????????innodb_log_buffer_size???????????????????????????????/**/
???????????????innodb_flush_log_at_trx_commit???????????????/*事務*/
????????????具體設置如下:
????????????
????????????[mysqld]
????????????basedir=C:/mysql
????????????#bind-address=192.168.1.8
????????????datadir=C:/mysql/data
????????????innodb_data_file_path = /ibdata2:100M:autoextend:max:2000M
????????????set-variable = innodb_buffer_pool_size=200M
????????????set-variable = innodb_additional_mem_pool_size=15M
????????????set-variable = innodb_log_file_size=50M
????????????set-variable = innodb_log_buffer_size=10M
????????????innodb_flush_log_at_trx_commit=1
????????????#language=C:/mysql/share/your language directory
????????????#slow query log#=
????????????#tmpdir#=
????????????#port=3306
????????????#set-variable=key_buffer=16M
????????????[WinMySQLadmin]
????????????Server=C:/mysql/bin/mysqld-nt.exe
????????????user=zhangxl
????????????password=zhangxl
?????????解釋:
ibdata2為自定義的數據文件名稱。在默認情況下,系統將自動創建ibdata0和ibdata1,這兩個文件是mysql安裝后自帶的。因此,如果用戶想以這兩個文件作為設置的數據文件,首先要刪除他們以及其他的3個日志文件,否則在使用mysql-max --console時會提示數據庫創建失敗。提醒一點的是,在刪除文件之前一定要先停止mysql服務,在dos下執行net stop mysql即可,然后備份數據文件和日志文件,防止mysql啟動失敗,以備恢復。
?
?????InnoDB 不會自己建立目錄,必須自己使用操作系統命令建立相應的目錄。檢查你的 MySQL 服務程序在 datadir
目錄里 有足夠的權限建立文件。
???這里沒有設置innodb_data_home_dir參數,在默認情況下,mysql自動會指向/mysql/data目錄 ,innodb_data_file_path 可以設置多個數據庫文件,在本例中只設置一個,同時還可以通過autoextend屬性把數據文件設為可擴展的,通過max屬性設置最后一個數據文件的最大值,在windows下一般為2G。
??????步驟3:通過命令net start mysql啟動mysql,然后執行命令mysql-max --console命令。
??????執行完上一步操作后,進入mysql安裝目錄的/data目錄下可以看到生成的數據文件和日志文件。
??????參考:
??????http://dev.mysql.com/doc/refman/5.0/en/error-creating-innodb.html
??????http://man.chinaunix.net/database/mysql/inonodb_zh/
posted @
2006-04-11 00:13 zhangxl 閱讀(2637) |
評論 (0) |
編輯 收藏