posts - 28,  comments - 15,  trackbacks - 0
               摘要: 本文介紹了解決Redis數(shù)據(jù)庫(kù)響應(yīng)延遲問(wèn)題的方法,將有助于你找出Redis 響應(yīng)延遲的問(wèn)題所在。  閱讀全文
          posted @ 2014-07-22 17:11 zhangxl 閱讀(1839) | 評(píng)論 (0)編輯 收藏
               摘要: 豁達(dá)是正確樂(lè)觀的面對(duì)失敗的系統(tǒng)。不需要過(guò)多的擔(dān)心,需要一種去說(shuō)那又怎樣的能力。因此架構(gòu)的設(shè)計(jì)是如此的重要。許多優(yōu)秀的系統(tǒng)沒(méi)有進(jìn)一步成長(zhǎng)的能力,我們應(yīng)該做的是使用其他的系統(tǒng)去共同分擔(dān)工作。 Redis是 其中一  閱讀全文
          posted @ 2014-07-22 15:27 zhangxl 閱讀(392) | 評(píng)論 (0)編輯 收藏
               摘要: 在redis服務(wù)器中的分區(qū)主要包含兩個(gè)目標(biāo):
          通過(guò)利用多臺(tái)計(jì)算機(jī)內(nèi)存的和值,允許我們構(gòu)造更大的數(shù)據(jù)庫(kù)。
          通過(guò)多核和多臺(tái)計(jì)算機(jī),允許我們擴(kuò)展計(jì)算能力;通過(guò)多臺(tái)計(jì)算機(jī)和網(wǎng)絡(luò)適配器,允許我們擴(kuò)展網(wǎng)絡(luò)帶寬。
            閱讀全文
          posted @ 2014-07-14 12:17 zhangxl 閱讀(678) | 評(píng)論 (1)編輯 收藏
               摘要: 為什么我設(shè)置的索引不能生效,設(shè)置索引應(yīng)該注意些什么,關(guān)于mysql的索引,有哪些細(xì)節(jié)。本篇文章能告訴你一些知識(shí)點(diǎn)。  閱讀全文
          posted @ 2014-05-08 19:48 zhangxl 閱讀(2033) | 評(píng)論 (4)編輯 收藏
               摘要: 二叉樹(shù)是數(shù)據(jù)結(jié)構(gòu)世界中具有重要地位的一種數(shù)據(jù)結(jié)構(gòu)。它同時(shí)具備有序數(shù)組和鏈表的優(yōu)點(diǎn),同時(shí)又彌補(bǔ)了有序數(shù)組插入數(shù)據(jù)、鏈表查找的缺點(diǎn)。同時(shí)也是各種面試中常見(jiàn)的問(wèn)題。現(xiàn)通過(guò)java實(shí)現(xiàn)二叉樹(shù),加深對(duì)二叉樹(shù)的理解。  閱讀全文
          posted @ 2014-04-18 18:34 zhangxl 閱讀(338) | 評(píng)論 (0)編輯 收藏
               摘要:   閱讀全文
          posted @ 2013-06-09 18:07 zhangxl 閱讀(240) | 評(píng)論 (0)編輯 收藏
               摘要: 對(duì)于MongoDB collection下的文檔而言,在文件大于16MB時(shí),我們應(yīng)該使用GridFS。在一些解決方案中,使用MongoDB的GridFS存儲(chǔ)大文件,比使用系統(tǒng)級(jí)別的文件系統(tǒng)更便利。當(dāng)文件系統(tǒng)的目錄對(duì)文件數(shù)量有限制時(shí),你應(yīng)該使用GridFS來(lái)存儲(chǔ)需要的盡可能多的文件;
            閱讀全文
          posted @ 2013-04-09 18:41 zhangxl 閱讀(511) | 評(píng)論 (0)編輯 收藏
               摘要: 本文在內(nèi)網(wǎng)linux環(huán)境下構(gòu)建Mongodb主從復(fù)制  閱讀全文
          posted @ 2013-04-02 19:15 zhangxl 閱讀(324) | 評(píng)論 (0)編輯 收藏

          語(yǔ)法
          jmap [ option ] pid
          jmap [ option ] executable core
          jmap [ option ] [server-id@]remote-hostname-or-IP


          參數(shù)

          option 參數(shù)是單一的,緊跟在命令后面。
          pid 要被映射的進(jìn)程。必須是java進(jìn)程。用jps可以獲得java進(jìn)程列表
          executable 產(chǎn)生核心轉(zhuǎn)儲(chǔ)的可執(zhí)行java代碼
          core 要被映射的核心文件
          remote-hostname-or-IP 遠(yuǎn)程調(diào)試服務(wù)器的域名或者ip地址(看jsadebugd)
          server-id 可選唯一id,如果多個(gè)服務(wù)器運(yùn)行在同一個(gè)遠(yuǎn)程主機(jī)


          描述

              是復(fù)制共享對(duì)象的內(nèi)存映射、給定進(jìn)程的堆內(nèi)存、核心文件、遠(yuǎn)程調(diào)試服務(wù)器。如果給定的進(jìn)程是再64的VM,你需要制定參數(shù),例如:
              jmap -J-d64 -heap pid

              注意:這個(gè)工具在未來(lái)的JDK里可能不支持或者不出現(xiàn)。在windows系統(tǒng)里沒(méi)有dbgeng.dll, 需要安裝'Debugging Tools for Windows'來(lái)運(yùn)行這些工具。同時(shí)PATH環(huán)境變量必須包含被目標(biāo)進(jìn)程或者崩潰導(dǎo)出文件位置鎖使用的jvm.dll路徑。例如:
              set PATH=\jre\bin\client;%PATH%


          OPTIONS

          <no option> 當(dāng)沒(méi)有選項(xiàng),jmap復(fù)制共享對(duì)象映射。目標(biāo)虛擬機(jī)中的每一個(gè)分享對(duì)象、開(kāi)始地址、映射大小、完整路徑被復(fù)制。這類(lèi)似于Solaris中的pmap工具。


          -dump:[live,]format=b,file=<filename> 把java堆導(dǎo)出成hprof二進(jìn)制格式文件。live子選項(xiàng)是可選的。如果指定,只有堆中的活對(duì)象被導(dǎo)出。瀏覽堆鏡像,你可以使用jhat。


          -finalizerinfo 復(fù)制正在等待回收的對(duì)象信息


          -heap 復(fù)制一個(gè)堆得概要。使用的GC算法堆配置,使用代的大小。


          -histo[:live] 復(fù)制一個(gè)堆得柱狀圖。每個(gè)Java類(lèi),對(duì)象個(gè)數(shù),內(nèi)存大?。╞yte),類(lèi)全路徑。VM的內(nèi)部類(lèi)用*為前綴。如果live子選項(xiàng)被指定,只有活對(duì)象被計(jì)數(shù)。


          -permstat 打印堆中永生代的類(lèi)加載器的寬泛統(tǒng)計(jì)。每個(gè)加載器的名字,活性,地址,父加載器,它加載的類(lèi)的大小。另外,駐留字符串的大小和數(shù)量。


          -F 強(qiáng)制。使用jmap -dump 或者 jmap -histo 選項(xiàng)時(shí),如果pid沒(méi)有響應(yīng)。在這個(gè)模式下live子選項(xiàng)不支持。


          -h 幫助


          -help 幫助


          -J<flag> java虛擬機(jī)選項(xiàng)

          posted @ 2013-03-18 17:32 zhangxl 閱讀(1129) | 評(píng)論 (0)編輯 收藏
               摘要:     使用java的人都知道,如果覆蓋了Object的equals方法,那么必須要覆蓋hashCode方法,并且如果兩個(gè)對(duì)象用equals方法比較返回true,那么這兩個(gè)對(duì)象hashCode返回的值也必須是相等的,并且對(duì)于同一個(gè)對(duì)象,equals方法需要比較的屬性值沒(méi)有被修改,那么每次調(diào)用hashCode返回的值應(yīng)該是一致的。  &nb...  閱讀全文
          posted @ 2012-08-16 18:39 zhangxl 閱讀(426) | 評(píng)論 (0)編輯 收藏
               摘要: 學(xué)習(xí)如何在windows下安裝mongo  閱讀全文
          posted @ 2012-05-25 23:58 zhangxl 閱讀(378) | 評(píng)論 (0)編輯 收藏
               摘要: 京東碰到的一道面試題  閱讀全文
          posted @ 2012-02-15 15:12 zhangxl 閱讀(1322) | 評(píng)論 (1)編輯 收藏
               摘要:     HashMap內(nèi)部有一個(gè)Entry數(shù)組,可以稱(chēng)之為hash table。HashMap的默認(rèn)構(gòu)造值為初始容量為16,負(fù)載因子為0.75,閥值(初始容量*負(fù)載因子)為12。其默認(rèn)構(gòu)造子如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeH...  閱讀全文
          posted @ 2012-02-13 14:42 zhangxl 閱讀(422) | 評(píng)論 (0)編輯 收藏
               摘要: 12個(gè)小球其中有一個(gè)是次品,不過(guò)不知道輕重,請(qǐng)問(wèn)用天平能用三次測(cè)量的機(jī)會(huì)找出那個(gè)次品嗎?  閱讀全文
          posted @ 2012-02-10 17:04 zhangxl 閱讀(1647) | 評(píng)論 (0)編輯 收藏
               摘要: java nio 實(shí)現(xiàn) Ping命令行  閱讀全文
          posted @ 2012-02-07 16:53 zhangxl 閱讀(917) | 評(píng)論 (0)編輯 收藏
               摘要: AbstractApplicationContext繼承于DefaultResourceLoader,因此AbstractApplicationContext也具備了資源加載的功能。同時(shí)ApplicationContext擴(kuò)展了ResourcePatternResolver接口,所以ApplicationContext的實(shí)現(xiàn)類(lèi)對(duì)外表現(xiàn)的Loader應(yīng)該為ResourcePatternResolver。通俗來(lái)講,就是說(shuō)容器具備資源模式解釋的功能,并能對(duì)一資源位置進(jìn)行加載  閱讀全文
          posted @ 2012-02-07 11:57 zhangxl 閱讀(512) | 評(píng)論 (0)編輯 收藏
               摘要: Spring框架提供基于依賴(lài)注入的IOC容器,完成對(duì)象的構(gòu)造、依賴(lài)注入、對(duì)象聲明周期維護(hù)等功能,下面將以FileSystemXmlApplicationContext為例來(lái)分析Spring IOC容器的實(shí)現(xiàn)。
            閱讀全文
          posted @ 2012-02-07 11:10 zhangxl 閱讀(725) | 評(píng)論 (0)編輯 收藏

                   JDBC3.0(JDK4.0),引入了一個(gè)新特性Savepoint。我們知道,在JDBC2.0中的事務(wù)支持讓開(kāi)發(fā)者可以控制對(duì)數(shù)據(jù)的并發(fā)訪(fǎng)問(wèn),從而保證數(shù)據(jù)的一致性。但有時(shí)候我們需要對(duì)事務(wù)多一點(diǎn)的控制,而不是在當(dāng)前的事務(wù)中簡(jiǎn)單地對(duì)每一個(gè)改變進(jìn)行回滾。在 JDBC 3.0 下,我們可以通過(guò) Savepoint 獲得這種控制。 Savepoint 接口允許您將事務(wù)分割為各個(gè)邏輯斷點(diǎn),以控制有多少事務(wù)需要回滾。下圖將說(shuō)明如何在事務(wù)中運(yùn)用 Savepoint。

          JDBC下使用Savepoint

          示例代碼:

          conn.setAutoCommit(false);
          // Set a conservative transaction isolation level.
          conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
          Statement stmt 
          = conn.createStatement();
          int rows = stmt.executeUpdate(    "INSERT INTO authors " + 
                          
          '(first_name, last_name) VALUES " +
                          '('Lewis''Carroll')");
          // Set a named savepoint.
          Savepoint svpt = conn.setSavepoint("NewAuthor");
          // 
          rows = stmt.executeUpdate(    "UPDATE authors set type = 'fiction' " +
                          
          "WHERE last_name = 'Carroll'");
          // 
          conn.rollback(svpt);
          // 
          // The author has been added, but not updated.
          conn.commit();

              

          示例結(jié)果就是,insert語(yǔ)句將被執(zhí)行,update語(yǔ)句未執(zhí)行,其被回滾了。

          Hibernate下使用Savepoint

          示例:

          Session s = sf.openSession();   
          Transaction tx 
          = s.beginTransaction();   
            
          User u1 
          = new User();u1.setId(1);u1.setName("u1");   
          s.save(u1);   
            
          Savepoint savepoint1 
          = s.connection().setSavepoint();   
          User u2 
          = new User();u2.setId(2);u2.setName("u2");   
          s.save(u2);   
           s.flush();

          s.connection().rollback(savepoint1);   
          //s.connection().releaseSavepoint(savepoint1);   
            
          tx.commit();  

           

          Spring對(duì)Savepoint的支持

           

          posted @ 2012-01-30 11:36 zhangxl 閱讀(2535) | 評(píng)論 (0)編輯 收藏
               摘要: 本文主要講述了在linux下,如何用c通過(guò)mysql c api訪(fǎng)問(wèn)mysql數(shù)據(jù)的問(wèn)題,同時(shí)給出了demo  閱讀全文
          posted @ 2011-10-31 11:16 zhangxl 閱讀(3138) | 評(píng)論 (1)編輯 收藏
               摘要:       Apache Benchmark簡(jiǎn)稱(chēng)為ab,是apache自帶的用于HTTP Server測(cè)試的工具。它可以接受單一的URL,然后重復(fù)地按照指定的多個(gè)獨(dú)立線(xiàn)程的方式加載,并使用不同的命令行參數(shù)控制訪(fǎng)問(wèn)的次數(shù)、最大的并發(fā)訪(fǎng)問(wèn)數(shù)等。另外一項(xiàng)不錯(cuò)的功能是可以輸出比較詳細(xì)的報(bào)告。   語(yǔ)法 ab [ -A auth-userna...  閱讀全文
          posted @ 2011-09-15 16:09 zhangxl 閱讀(3229) | 評(píng)論 (1)編輯 收藏
               摘要: 里面采用java NIO進(jìn)行通信管理,以前也了解過(guò)一些關(guān)于這方面的知識(shí)但是都不太系統(tǒng),最近兩天抽時(shí)間對(duì)這塊進(jìn)行一下掃盲。我主要參考以下兩篇文章,個(gè)人認(rèn)為這兩篇文章還是不錯(cuò)的入門(mén)級(jí)文章,講的比較通俗易懂。
            閱讀全文
          posted @ 2011-06-30 16:24 zhangxl 閱讀(2794) | 評(píng)論 (1)編輯 收藏


          下載安裝包:amoeba-mysql-binary-2.1.0-RC5.tar.gz
          下載源代碼:http://amoeba.googlecode.com/svn/trunk


          1.定位Amoeba啟動(dòng)類(lèi)

          打開(kāi)amoeba.bat,經(jīng)過(guò)分析,amoeba的啟動(dòng)是通過(guò)classworlds進(jìn)行加載的,關(guān)于classworlds請(qǐng)參見(jiàn)http://classworlds.codehaus.org/launchusage.html

          在amoeba.bat中是通過(guò)以下語(yǔ)句來(lái)定位classworlds啟動(dòng)應(yīng)用的配置項(xiàng)的

           

          set DEFAULT_OPTS=%DEFAULT_OPTS% "-Dclassworlds.conf=%AMOEBA_HOME%\bin\amoeba.classworlds"


          以下是amoeba.classworlds的內(nèi)容

          main is com.meidusa.amoeba.server.AmoebaProxyServer from amoeba

          [amoeba]
          load $
          {amoeba.home}/lib/*.jar
          load ${amoeba.home}/lib/classes



          意思就是amoeba應(yīng)用是從com.meidusa.amoeba.server.AmoebaProxyServer開(kāi)始啟動(dòng)的。


          接下來(lái)把a(bǔ)moeba下的源文件和amoeba-mysql下的源文件導(dǎo)入到項(xiàng)目中,以及相關(guān)jar;

          為了能在bebug模式下啟動(dòng),建議在debug-arguments下增加start arguments;

          posted @ 2011-06-24 17:08 zhangxl 閱讀(1389) | 評(píng)論 (0)編輯 收藏
           

          上網(wǎng)找了一些資料,主要就是關(guān)于跨平臺(tái)的一些細(xì)節(jié):

          1
          程序設(shè)計(jì)的信息編碼要注意,一般要采用 ASCII碼字符集,并不是所有的操作系統(tǒng)都支持Unicode碼。
           
          后來(lái)研究一下,還是UTF-8。

          2
          程序中不要硬性編碼與平臺(tái)相關(guān)的任何常量,比如行分隔符、文件分隔符、路徑分隔符等。
          unixmac 中是“/”,在windows里是“\”
          如要用這些常量,要使用  Java.util.properties 類(lèi)的getProperty 方法。
          如: Java.util.properties.getProperty("file.seParator")
          可以獲得文件分隔符,getProperty("line.seParator") 返回行分隔符。
                              getProperty("path.seParator")
          返回路徑分隔符

          3
          編寫(xiě)跨平臺(tái)網(wǎng)絡(luò)程序時(shí),不要使用 Java.net.InetAddress類(lèi)的getHostName方法得到主機(jī)名,
          因?yàn)椴煌钠脚_(tái)的主機(jī)名格式不同。最好使用 getAddress得到格式相同的IP地址。另外,
          程序中的所有的主機(jī)都要換成IP地址。

          4
          如寫(xiě)GUI程序,在使用AWT組件時(shí)不能硬性設(shè)置組件的大小和為止,而應(yīng)該使用JAVA的布局管理器(Layout manager)
           
          來(lái)設(shè)置。

          5
          不同的操作系統(tǒng),不同的機(jī)器,系統(tǒng)支持的顏色和屏幕的大小和分辨率都不同,如何獲得這些屬性,
          使用 Java.awt.systemcolor 類(lèi)可以獲得需要的顏色,如該類(lèi)的 inactiveCaption 就是窗口邊框
          活動(dòng)標(biāo)題背景色   Menu是菜單背景色,使用Java.awt.Tookit getScreenResolution可以以
          像素每英寸為單位顯示分辨率。
          該類(lèi) getScreenSize 可以得到屏幕大小(英寸), LoadSystemcolors 可以列出所有的系統(tǒng)顏色。

          6
          程序中使用任何一個(gè)方法時(shí),要詳細(xì)查看文檔,確保,使用的方法不是文檔已經(jīng)申明為過(guò)時(shí)的方法,
          也不是文檔中未標(biāo)明的隱含方法。

          posted @ 2009-08-19 11:02 zhangxl 閱讀(329) | 評(píng)論 (0)編輯 收藏
           

          上網(wǎng)找了一些資料,主要就是關(guān)于跨平臺(tái)的一些細(xì)節(jié):

          1
          程序設(shè)計(jì)的信息編碼要注意,一般要采用 ASCII碼字符集,并不是所有的操作系統(tǒng)都支持Unicode碼。
           
          后來(lái)研究一下,還是UTF-8

          2
          程序中不要硬性編碼與平臺(tái)相關(guān)的任何常量,比如行分隔符、文件分隔符、路徑分隔符等。
          unixmac 中是“/”,在windows里是“\”
          如要用這些常量,要使用  Java.util.properties 類(lèi)的getProperty 方法。
          如: Java.util.properties.getProperty("file.seParator")
          可以獲得文件分隔符,getProperty("line.seParator") 返回行分隔符。
                              getProperty("path.seParator")
          返回路徑分隔符

          3
          編寫(xiě)跨平臺(tái)網(wǎng)絡(luò)程序時(shí),不要使用 Java.net.InetAddress類(lèi)的getHostName方法得到主機(jī)名,
          因?yàn)椴煌钠脚_(tái)的主機(jī)名格式不同。最好使用 getAddress得到格式相同的IP地址。另外,
          程序中的所有的主機(jī)都要換成IP地址。

          4
          如寫(xiě)GUI程序,在使用AWT組件時(shí)不能硬性設(shè)置組件的大小和為止,而應(yīng)該使用JAVA的布局管理器(Layout manager)
           
          來(lái)設(shè)置。

          5
          不同的操作系統(tǒng),不同的機(jī)器,系統(tǒng)支持的顏色和屏幕的大小和分辨率都不同,如何獲得這些屬性,
          使用 Java.awt.systemcolor 類(lèi)可以獲得需要的顏色,如該類(lèi)的 inactiveCaption 就是窗口邊框
          活動(dòng)標(biāo)題背景色   Menu是菜單背景色,使用Java.awt.Tookit getScreenResolution可以以
          像素每英寸為單位顯示分辨率。
          該類(lèi) getScreenSize 可以得到屏幕大小(英寸), LoadSystemcolors 可以列出所有的系統(tǒng)顏色。

          6
          程序中使用任何一個(gè)方法時(shí),要詳細(xì)查看文檔,確保,使用的方法不是文檔已經(jīng)申明為過(guò)時(shí)的方法,
          也不是文檔中未標(biāo)明的隱含方法。

          posted @ 2009-08-19 11:01 zhangxl 閱讀(394) | 評(píng)論 (0)編輯 收藏
          今天在看完xtree.js代碼后,發(fā)現(xiàn)一個(gè)問(wèn)題。在執(zhí)行javascript的document.write(obj)方法時(shí),如果obj實(shí)現(xiàn)了prototype的toString()方法,document.wirte方法將能自動(dòng)調(diào)用obj的toString()方法。代碼如下:
          ???/*----------?? 樹(shù)構(gòu)造代碼 ---------*/
          ??????? if (document.getElementById) {
          ?????????? var tree = new WebFXTree('Root');
          ?????????? tree.setBehavior('classic');
          ?????????? var a = new WebFXTreeItem('1');
          ?????????? tree.add(a);
          ?????????? var b = new WebFXTreeItem('1.1');
          ?????????? a.add(b);
          ????????? b.add(new WebFXTreeItem('1.1.1'));
          ????????? b.add(new WebFXTreeItem('1.1.2'));
          ????????? b.add(new WebFXTreeItem('1.1.3'));
          ????????? var f = new WebFXTreeItem('1.1.4');
          ????????? b.add(f);

          ???????? document.write(tree);

          /*------------------ xtree.js代碼片段 ----------*/

          WebFXTree.prototype.toString = function() {
          alert("it's here!");
          ?var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">" +
          ??"<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\">" +
          ??"<a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
          ??(this.target ? " target=\"" + this.target + "\"" : "") +
          ??">" + this.text + "</a></div>" +
          ??"<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
          ?var sb = [];
          ?for (var i = 0; i < this.childNodes.length; i++) {
          ??sb[i] = this.childNodes[i].toString(i, this.childNodes.length);
          ?}
          ?this.rendered = true;
          ?return str + sb.join("") + "</div>";
          };

          經(jīng)過(guò)跟蹤,證實(shí)在執(zhí)行document.write(tree)時(shí),調(diào)用了WebFXTree.prototype.toString 方法。
          posted @ 2009-08-13 16:20 zhangxl 閱讀(1015) | 評(píng)論 (1)編輯 收藏
          lucene 實(shí)踐
          posted @ 2008-05-04 17:46 zhangxl 閱讀(324) | 評(píng)論 (1)編輯 收藏

          待續(xù)....

          posted @ 2006-04-25 11:30 zhangxl 閱讀(461) | 評(píng)論 (0)編輯 收藏

          ?????? InnoDB 給 MySQL 提供了具有事務(wù)(commit)、回滾(rollback)和崩潰修復(fù)能力(crash recovery capabilities)的事務(wù)安全(transaction-safe (ACID compliant))型表。InnoDB 提供了行鎖(locking on row level),提供與 Oracle 類(lèi)型一致的不加鎖讀取(non-locking read in SELECTs)。這些特性均提高了多用戶(hù)并發(fā)操作的性能表現(xiàn)。在InnoDB表中不需要擴(kuò)大鎖定(lock escalation),因?yàn)?InnoDB 的列鎖定(row level locks)適宜非常小的空間。InnoDB 是 MySQL 上第一個(gè)提供外鍵約束(FOREIGN KEY constraints)的表引擎。
          ????????????要想正常的使用InnoDB帶給我們的好處,首先要建立InnoDB數(shù)據(jù)庫(kù)。示例采用的mysql版本是4.0.12,這個(gè)版本屬于mysql的beta版本。假設(shè)你的mysql已經(jīng)安裝完畢,并且采用的是win xp操作系統(tǒng),接下來(lái)我們就要?jiǎng)?chuàng)建InnoDB數(shù)據(jù)庫(kù)。
          ????????????當(dāng)創(chuàng)建一個(gè) InnoDB 數(shù)據(jù)庫(kù)時(shí)最好以命令行方式來(lái)運(yùn)行 MySQL 服務(wù) mysqld ,而不是從 safe_mysqld 或 Windows 服務(wù)。當(dāng)從命令行方式運(yùn)行服務(wù)時(shí)可以看到建立過(guò)程。
          ??????步驟1:通過(guò) MS-DOS的 NET STOP MySQL 命令停止mysql服務(wù)。
          ??????步驟2:修改c:/windows/my.ini文件,主要是設(shè)置Innodb的參數(shù)。從設(shè)置最小的角度考慮,可以
          ?????????????設(shè)置一下幾項(xiàng):
          ???????????????innodb_data_home_dir??????????????????????????????????/*innodb數(shù)據(jù)庫(kù)數(shù)據(jù)文件目錄*/
          ???????????????innodb_data_file_path??????????????????????????????????/*數(shù)據(jù)文件名稱(chēng)及大小*/
          ???????????????????????innodb_buffer_pool_size????????????????????? /*緩沖池的大小,一般設(shè)置為主存的50%-80%*/
          ???????????????innodb_additional_mem_pool_size????????????/**/
          ???????????????innodb_log_file_size???????????????????????????????????/*日志文件的大小,一般設(shè)置為主存的25%*/
          ???????????????innodb_log_buffer_size???????????????????????????????/**/
          ???????????????innodb_flush_log_at_trx_commit???????????????/*事務(wù)*/
          ????????????具體設(shè)置如下:
          ????????????
          ????????????[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

          ?????????解釋?zhuān)?font color="#ff0033" size="2">ibdata2為自定義的數(shù)據(jù)文件名稱(chēng)。在默認(rèn)情況下,系統(tǒng)將自動(dòng)創(chuàng)建ibdata0和ibdata1,這兩個(gè)文件是mysql安裝后自帶的。因此,如果用戶(hù)想以這兩個(gè)文件作為設(shè)置的數(shù)據(jù)文件,首先要?jiǎng)h除他們以及其他的3個(gè)日志文件,否則在使用mysql-max --console時(shí)會(huì)提示數(shù)據(jù)庫(kù)創(chuàng)建失敗。提醒一點(diǎn)的是,在刪除文件之前一定要先停止mysql服務(wù),在dos下執(zhí)行net stop mysql即可,然后備份數(shù)據(jù)文件和日志文件,防止mysql啟動(dòng)失敗,以備恢復(fù)。
          ??????InnoDB 不會(huì)自己建立目錄,必須自己使用操作系統(tǒng)命令建立相應(yīng)的目錄。檢查你的 MySQL 服務(wù)程序在 datadir 目錄里 有足夠的權(quán)限建立文件。
          ???這里沒(méi)有設(shè)置innodb_data_home_dir參數(shù),在默認(rèn)情況下,mysql自動(dòng)會(huì)指向/mysql/data目錄 ,innodb_data_file_path 可以設(shè)置多個(gè)數(shù)據(jù)庫(kù)文件,在本例中只設(shè)置一個(gè),同時(shí)還可以通過(guò)autoextend屬性把數(shù)據(jù)文件設(shè)為可擴(kuò)展的,通過(guò)max屬性設(shè)置最后一個(gè)數(shù)據(jù)文件的最大值,在windows下一般為2G。
          ??????步驟3:通過(guò)命令net start mysql啟動(dòng)mysql,然后執(zhí)行命令mysql-max --console命令。
          ??????執(zhí)行完上一步操作后,進(jìn)入mysql安裝目錄的/data目錄下可以看到生成的數(shù)據(jù)文件和日志文件。
          ??????參考:
          ??????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 閱讀(2638) | 評(píng)論 (0)編輯 收藏
          <2006年4月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(1)

          隨筆分類(lèi)(17)

          隨筆檔案(28)

          文章分類(lèi)(30)

          文章檔案(30)

          相冊(cè)

          收藏夾(2)

          hibernate

          java基礎(chǔ)

          mysql

          xml

          關(guān)注

          壓力測(cè)試

          算法

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 96369
          • 排名 - 601

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 南川市| 瑞丽市| 福安市| 晴隆县| 和顺县| 文安县| 昌吉市| 三明市| 呼图壁县| 临颍县| 青海省| 芜湖县| 东莞市| 延长县| 南川市| 民权县| 阿合奇县| 普格县| 广南县| 故城县| 钦州市| 临江市| 华容县| 都兰县| 密山市| 米脂县| 唐河县| 宣威市| 津南区| 鹤壁市| 乐都县| 清水县| 涞源县| 临江市| 葫芦岛市| 鸡东县| 多伦县| 且末县| 南溪县| 叙永县| 溧阳市|