博客

  • linux文件系統基礎知識

    這兩天看了一本fedora 6的實踐教程,下面是有關linux文件系統知識的學習筆記:
    1、linux文件系統分配策略:
        塊分配( block allocation )和擴展分配( extent allocation )
        塊分配:磁盤上的文件塊根據需要分配給文件,避免了存儲空間的浪費。但當文件擴充時,會造成文件中文件塊的不連續,從而導致過多的磁盤尋道時間。
                每一次文件擴展時,塊分配算法就需要寫入文件塊的結構信息,也就是meta-dada 。 meta-data總是與文件一起寫入存儲設備,改變文件的操作要等到所有meta-data的操作都完成後才能進行,
                因此,meta-data的操作會明顯降低整個文件系統的性能。
        擴展分配:文件創建時,一次性分配一連串連續的塊,當文件擴展時,也一次分配很多塊。 meta-data在文件創建時寫入,當文件大小沒有超過所有已分配文件塊大小時,就不用寫入meta-data,直到需要再分配文件塊的時候。
                    擴展分配採用成組分配塊的方式,減少了SCSI設備寫數據的時間,在讀取順序文件時具有良好的性能,但隨機讀取文件時,就和塊分配類似了。
                    文件塊的組或塊簇( block cluster)的大小是在編譯時確定的。簇的大小對文件系統的性能有很大的影響。
        注: meta-data元信息:和文件有關的信息,比如權限、所有者以及創建、訪問或更改時間等。
    2、文件的記錄形式
         linux文家系統使用索引節點(inode)來記錄文件信息。索引節點是一種數據結構,它包含了一個文件的長度、創建及修改時間、權限、所屬關係、磁盤中的位置等信息。
    一個文件系統維護了一個索引節點的數組,每個文件或目錄都與索引節點數組中的唯一的元素對應。每個索引節點在數組中的索引號,稱為索引節點號。
         linux文件系統將文件索引節點號和文件名同時保存在目錄中,所以,目錄只是將文件的名稱和它的索引節點號結合在一起的一張表,目錄中每一對文件名稱和索引節點號稱為一個連接。
    對於一個文件來說,有一個索引節點號與之對應;而對於一個索引節點號,卻可以對應多個文件名。
        連接分為軟連接和硬連接,其中軟連接又叫符號連接。
        硬連接:原文件名和連接文件名都指向相同的物理地址。目錄不能有硬連接;硬連接不能跨文件系統(不能跨越不同的分區),文件在磁盤中只有一個拷貝。
                由於刪除文件要在同一個索引節點屬於唯一的連接時才能成功,因此硬連接可以防止不必要的誤刪除。
        軟連接:用ln -s命令建立文件的符號連接。符號連接是linux特殊文件的一種,作為一個文件,它的數據是它所連接的文件的路徑名。沒有防止誤刪除的功能。
    3、文件系統類型:
        
         ext2 :早期linux中常用的文件系統
         ext3 : ext2的升級版,帶日誌功能
         RAMFS :內存文件系統,速度很快
         NFS :網絡文件系統,由SUN發明,主要用於遠程文件共享
         MS-DOS : MS-DOS文件系統
         VFAT : Windows 95/98操作系統採用的文件系統
         FAT : Windows XP操作系統採用的文件系統
         NTFS : Windows NT/XP操作系統採用的文件系統
         HPFS : OS/2操作系統採用的文件系統
         PROC :虛擬的進程文件系統
         ISO9660 :大部分光盤所採用的文件系統
         ufsSun : OS所採用的文件系統
         NCPFS : Novell服務器所採用的文件系統
         SMBFS : Samba的共享文件系統
         XFS :由SGI開發的先進的日誌文件系統,支持超大容量文件
         JFS :IBM的AIX使用的日誌文件系統
         ReiserFS :基於平衡樹結構的文件系統
         udf:可擦寫的數據光盤文件系統
    4、虛擬文件系統VFS
        
         linux支持的所有文件系統稱為邏輯文件系統,而linux在傳統的邏輯文件系統的基礎上增加料一個蓄念文件系統( Vitual File System ,VFS)的接口層。
        虛擬文件系統(VFS)位於文件系統的最上層,管理各種邏輯文件系統,並可以屏蔽各種邏輯文件系統之間的差異,提供統一文件和設備的訪問接口。
    5、文件的邏輯結構
        文件的邏輯結構可分為兩大類:字節流式的無結構文件和記錄式的有結構文件。
        由字節流(字節序列)組成的文件是一種無結構文件或流式文件,不考慮文件內部的邏輯結構,只是簡單地看作是一系列字節的序列,便於在文件的任意位置添加內容。
        由記錄組成的文件稱為記錄式文件,記錄是這種文件類型的基本信息單位,記錄式文件通用於信息管理。
    6、文件類型
        
        普通文件:通常是流式文件
        目錄文件:用於表示和管理系統中的全部文件
        連接文件:用於不同目錄下文件的共享
        設備文件:包括塊設備文件和字符設備文件,塊設備文件表示磁盤文件、光盤等,字符設備文件按照字符操作終端、鍵盤等設備。
        管道(FIFO)文件:提供進程建通信的一種方式
        套接字(socket)文件:該文件類型與網絡通信有關
    7、文件結構:包括索引節點和數據
        索引節點:又稱I節點,在文件系統結構中,包含有關相應文件的信息的一個記錄,這些信息包括文件權限、文件名、文件大小、存放位置、建立日期等。文件系統中所有文件的索引節點保存在索引節點表中。
        數據:文件的實際內容。可以是空的,也可以非常大,並且擁有自己的結構。
    8、ext2文件系統
        
         ext2文件系統的數據塊大小一般為1024B、2048B或4096B
         ext2文件系統採用的索引節點(inode):
            索引節點採用了多重索引結構,主要體現在直接指針和3個間接指針。直接指針包含12個直接指針塊,它們直接指向包含文件數據的數據塊,緊接在後面的3個間接指針是為了適應文件的大小變化而設計的。
         eg:假設數據塊大小為1024B ,利用12個直接指針,可以保存最大為12KB的文件,當文件超過12KB時,則要利用單級間接指針,該指針指向的數據塊保存有一組數據塊指針,這些指針依次指向包含有實際數據的數據塊,
            假如每個指針佔用4B,則每個單級指針數據塊可保存1024/4=256個數據指針,因此利用直接指針和單級間接指針可保存1024*12+1024*256=268 KB的文件。當文件超過268KB時,再利用二級間接指針,直到使用三級間接指針。
            利用直接指針、單級間接指針、二級間接指針、三級間接指針可保存的最大文件大小為:
                 1024*12+1024*256+1024*256*256+1024*256*256*256=16843020 KB,約16GB
            若數據塊大小為2048B,指針佔4B,則最大文件大小為: 2048*12+2048*512+2048*512*512+2048*512*512*512=268,960,792 KB約268GB
            若數據塊大小為4096B,指針佔4B,則最大文件大小為: 4096*12+4096*1024+4096*1024*1024+4096*1024*1024*1024=4,299,165,744 KB ,約4TB
        注:命令tune2fs -l /dev/sda5可查看文件系統
         ext2文件系統最大文件名長度: 255個字符
        
         ext2文件系統的缺點:
                 ext2在寫入文件內容的同時並沒有同時寫入文件meta-data,其工作順序是先寫入文件的內容,然後等空閒時候才寫入文件的meta-data。若發生意外,則文件系統就會處於不一致狀態。
            在重新啟動系統的時候,linux會啟動fsk ( file system check)的程序,掃描整個文件系統並試圖修復,但不提供保證。
    9、ext3文件系統:
        
         ext3基於ext2的代碼,所以磁盤格式與ext2相同,使用相同的元數據。
         ext2文件系統無損轉化為ext3文件系統: tune2fs -j /dev/sda6
        
        日誌塊設備( Journaling block device layer,JBD)完成ext3文件系統日誌功能。 JBD不是ext3文件系統所特有的,它的設計目標是為了向一個塊設備添加日誌功能。
        當一個文件修改執行時,ext3文件系統代碼將通知JBD,稱為一個事務(transaction)。發生意外時,日誌功能具有的重放功能,能重新執行中斷的事務。
        
        日誌中的3種數據模式:
             1)、data=writeback :不處理任何形式的日誌數據,給用戶整體上的最高性能
             2)、data=odered :只記錄元數據日誌,但將元數據和數據組成一個單元稱為事務(transaction) 。此模式保持所句句的可靠性與文件系統的一致性,性能遠低於data=writeback模式,但比data=journal模式快
             3)、data=journal :提供完整的數據及元數據日誌,所有新數據首先被寫入日誌,然後才被定位。意外發生過後,日誌可以被重放,將數據與元數據帶回一致狀態。這種模式整體性能最慢,但數據需要從磁盤讀取和寫入磁盤時卻是3種模式中最快的。
         ext3文件系統最大文件名長度: 255個字符
         ext3文件系統的優點:可用性、數據完整性、速度、兼容性
    10、ReiserFS文件系統
        
         ReiserFS文件系統是由Hans Reiser和他領導的開發小組共同開發的,整個文件系統完全是從頭設計的,是一個非常優秀的文件系統。也是最早用於Linux的日誌文件系統之一。
         ReiserFS的特點
        先進的日誌機制
             ReiserFS有先進的日誌(Journaling/logging)功能機制。日誌機制保證了在每個實際數據修改之前,相應的日誌已經寫入硬盤。文件與數據的安全性有了很大提高。
        高效的磁盤空間利用
             Reiserfs對一些小文件不分配inode。而是將這些文件打包,存放在同一個磁盤分塊中。而其它文件系統則為每個小文件分別放置到一個磁盤分塊中。
        獨特的搜尋方式
             ReiserFS基於快速平衡樹(balanced tree)搜索,平衡樹在性能上非常卓越,這是一種非常高效的算法。 ReiserFS搜索大量文件時,搜索速度要比ext2快得多。 Reiserfs文件系統使用B*Tree存儲文件,而其它文件系統使用B+Tree樹。 B*Tree查詢速度比B+Tree要快很多。 Reiserfs在文件定位上速度非常快。
            在實際運用中,ReiserFS在處理小於4k的文件時,比ext2快5倍;帶尾文件壓縮功能(默認)的ReiserFS比ext2文件系統多存儲6%的數據。
        支持海量磁盤
             ReiserFS是一個非常優秀的文件系統,一直被用在高端UNIX系統上,可輕鬆管理上百G的文件系統,ReiserFS文件系統最大支持的文件系統尺寸為16TB。這非常適合企業級應用中。
        優異的性能
            由於它的高效存儲和快速小文件I/O特點,使用ReiserFs文件系統的PC,在啟動X窗口系統時,所花的時間要比在同一台機器上使用ext2文件系統少1/3。另外,ReiserFS文件系統支持單個文件尺寸為4G的文件,這為大型數據庫系統在linux上的應用提供了更好的選擇。

  • Linux系統新手學習的11點建議

    隨著Linux應用的擴展許多朋友開始接觸Linux,根據學習Windwos的經驗往往有一些茫然的感覺:不知從何處開始學起。這裡介紹學習Linux的

    一些建議。

    一、從基礎開始:常常有些朋友在Linux論壇問一些問題,不過,其中大多數的問題都是很基礎的。例如:為什麼我使用一個命令的時候,系

    統告訴我找不到該目錄,我要如何限制使用者的權限等問題,這些問題其實都不是很難的,只要了解了Linux的基礎之後,應該就可以很輕

    易的解決掉這方面的問題。而有些朋友們常常一接觸Linux就是希望構架網站,根本沒有想到要先了解一下Linux的基礎。這是相當困難的。
    二、Linux命令是必須學習雖然Linux桌面應用發展很快,但是命令在Linux中依然有很強的生命力。 Linux是一個命令行組成的操作系統,精髓

    在命令行,無論圖形界面發展到什麼水平這個原理是不會變的,Linux命令有許多強大的功能:從簡單的磁盤操作、文件存取、到進行複雜的

    多媒體圖像和流媒體文件的製作。

    舉一個例子: Linux的常用命令find,察看man文檔,初學者一定會覺得太複雜而不原意用,但是你一旦學會就愛不釋手.它的功能實在太強了,在

    配合exec參數或者通過管道重定向到xargs命令和grep命令,可以完成非常複雜的操作,如果同樣的操作用圖形界面的工具來完成,恐怕要多花十

    幾陪的時間.不同版本的Linux命令數量不一樣,這裡筆者把它們中比較重要的和使用頻率最多的命令,按照它們在系統中的作用分成幾個部

    分介紹給大家,通過這些基礎命令的學習我們可以進一步理解Linux系統:安裝和登錄命令:login、 shutdown、 halt、 reboot 、mount、

    umount 、chsh文件處理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln系統管理相關命令: df、 top、 free、

    quota 、at、 lp、 adduser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last網絡操作命令:ifconfig、 ip 、ping 、

    netstat 、telnet、 ftp、 route、 rlogin rcp 、finger 、mail 、nslookup系統安全相關命令: passwd 、su、 umask 、chgrp、

    chmod、chown、chattr、sudo、 pswho

    三、選擇一本好的工具書工具書對於學習者而言是相當重要的。一本錯誤觀念的工具書卻會讓新手整個誤入歧途。目前國內關於Linux的書籍

    有很多不過精品的不多,筆者強烈建議閱讀影印本的“O’Reilly原版Linux圖書http://www.oreilly.com.cn/ ”,而且出版社還提供了一個非

    常好的路線圖:http://www.oreilly.com.cn/guide/guide_linux.php

    四、選擇一個適合你的Linux發行版本目前全球有超過1百多個Linux發行版本,在國內也能找到十幾個常見版本。如何選擇請根據你的需求和

    能力,Redhat Linux和Debian Linux是網絡管理員的理想選擇。對於英語不是很好的讀者紅旗Linux、中標Linux這些中文版本比較適合。現

    在一些Linux網站有一些Linux版本的免費下載,這裡要說的是並不適合Linux初學者。

    五、養成在命令行下工作:一定要養成在命令行下工作的習慣,要知道X-window只是運行在命令行模式下的一個應用程序。在命令行下學習

    雖然一開始進度較慢,但是熟悉後,您未來的學習之路將是以指數增加的方式增長的。從網管員來說,命令行實際上就是規則,它總是有效的

    ,同時也是靈活的。即使是通過一條緩慢的調製解調器線路,它也能操縱幾千公里以外地遠程系統。

    六、選擇一個適合你的Linux社區;隨著Linux應用的擴展,出現了不少Linux社區。其中有一些非常優秀的社區:www.linuxforum.net(國內

    最高水平GNU站點)、 http://www.chinaunix.net/ (中國最大的Unix技術社區),但是這幾個論壇往往是Linux高手的舞台,如果在探討高

    級技巧的論壇張貼非常初級的問題經常會沒有結果。還有一些非常豐富的學習資料及社區的綜合站點,如:www.xxlinux.com學習文章和資料非

    常的充足,也有社區供大家交流.初學這可以得到很大的幫助.

    七、勤於實踐:要增加自己Linux的技能,只有通過實踐來實現了。所以,趕快找一部計算機,趕快安裝一個Linux發行版本,然後進入精

    彩的Linux世界。相信對於你自己的Linux能力必然大有斬獲。此外,人腦不像計算機的硬盤一樣,除非硬盤壞掉了或者是資料被你抹掉了,

    否則儲存的資料將永遠而且立刻的記憶在硬盤中。在人類記憶的曲線中,你必須要不斷的重複練習才會將一件事情記得比較熟。同樣的,學習

    Linux也一樣,如果你無法經常學習的話,學了後面的,前面的忘了。你對Linux命令熟悉後你可以開始搭建一個小的Linux網絡,這是最好的

    實踐方法。 Linux是網絡的代名詞,Linux網絡服務功能非常強大,不論是郵件服務器、Web服務器、DNS服務器等都非常完善。當然你不需搭

    建所有服務,可以慢慢來。需要說明的是這個Linux網絡對於初學者有兩三台計算機即可,其中一台計算機最好安裝Windows系統。自己多動手

    ,不要非要等著別人幫你解決問題。

    八、如何得到聯機幫助和私有操作系統不同,各個Linux的發行版本的技術支持時間都較短,這對於Linux初學者是往往不夠的。其實當你安

    裝了一個完整的Linux系統後其中已經包含了一個強大的幫助,只是可能你還沒有發現和使用它們的技巧。
    1.主流Linux發行版都自帶非常詳細的文檔(包括手冊頁和FAQ),從系統安裝到系統安全,針對不同層次的人的詳盡文檔,仔細閱讀文檔後

    40%問題都可在此解決。

    2.查閱經典工具書和Howto,特別是Howto是全球數以萬計的Linux、Unix的經驗總結非常有參考價值通常40%的問題同樣可以解決。
    九、在Linux論壇獲取幫助如果上面的措施沒有解決問題,此時你就需要Linux社區的幫助了。 Linux的使用者一般都是專業人士,他們有著很

    好的電腦背景且願意協助他人, Linux高手更具有鼓勵新手的文化精神。如何在Linux社區獲得幫助,需要說明的是你要有周全的思考,準備

    好你的問題,不要草率的發問,否則只會得到到草率的回答或者根本得不到任何答案。越表現出在尋求幫助前為解決問題付出的努力,你越能

    得到實質性的幫助。最好先搜尋一下論壇是否有您需要的文章。這樣可以獲得事半功倍的效果。下面筆者在論壇看到的一個好問題:“安裝

    紅旗4.0後,系統紫光輸入法自帶的雙拼方案和我的習慣不一樣,如何自定義雙拼方案解決?謝謝? ”這個問題很簡練,筆者五分鐘後就給出

    了解決方法:“首先備份原文件到其他目錄,然後刪掉/usr/local/unispim/unispimsp.ksc,編輯/usr/local/unispim/unispimsp.ini ,最

    後重啟動計算機,生成新的unispimsp.ksc”另外得到回復後如果問題解決,向幫助過你的人發個說明,讓他們知道問題是怎樣解決的,這種

    補充有助於他人在郵件列表/新聞組/論壇中搜索對你有過幫助的完整解決方案,這可能對他們也很有用。下面看看一個讓人無法回答的問題:

    “救命各位高手,向你們請教一些問題:如何在Linux下配製HTTP、FTP、Samba、DNS、DHCP、 Sendmail服務器,謝謝”這樣的問題我想即使

    Linux高手也很難快速準確精練的回答你。你需要提供精確有效的信息。這並不是要求你簡單的把成噸的出錯代碼或者數據完全轉儲摘錄到你

    的提問中。如果你有龐大而復雜的測試條件,盡量把它剪裁得越小越好。可能你會遇到這種情況,對於一個問題會出現不同內容回答,這時你

    需要通過實踐來驗證。另外把這個問題放在其他Linux社區請求幫助也是一種選擇。如果得不到答案,請不要以為我們覺得無法幫助你。有時

    只是看到你問題的人不知道答案罷了。這時換一個社區是不錯的選擇。另外發問的時候一定要注意到某些禮節。因為Linux社區是一個鬆散的

    組織、也不承擔回复每個帖子的義務。它不是技術支持。

    十.用Unix思維學習Linux Linux是參照Unix思想設計的,理解掌握Linux必須按照Unix思維來進行。思想性的轉變比暫時性的技術提高更有用

    ,因為他能幫助你加快學習速度。

    十一.學習專業英文如果你想深入學習Linux,看不懂因為文檔實在是太難了。寫的最好的,最全面的文檔都是英語寫的,最先發布的技術信息也

    都是用英語寫的。即便是非英語國家的人發布技術文檔,也都首先翻譯成英語在國際學術雜誌和網絡上發表。安裝一個新的軟件時先看README,

    再看INSTALL然後看FAQ,最後才動手安裝,這樣遇到問題就知道為什麼。如果說明文檔不看,結果出了問題再去論壇來找答案反而浪費時間。 11

    .最後是Linux學習的路線圖:

    1.掌握至少50個以上的常用命令。
    2.熟悉Gnome/KDE等X-windows桌面環境操作。
    3.掌握.tgz、.rpm等軟件包的常用安裝方法
    4.學習添加外設,安裝設備驅動程序(比如網卡)
    5.熟悉Grub/Lilo引導器及簡單的修復操作。
    6.熟悉Linux文件系統和目錄結構。
    7.掌握vi,gcc,gdb等常用編輯器,編譯器,調試器。
    8.理解shell別名、管道、I/O重定向、輸入和輸出以及shell腳本編程。
    9.學習Linux環境下的組網。
        以上是筆者學習Linux一些經驗,希望對你有些幫助。

  • Google 的 Chrome OS 能否战胜 Windows

    人们都在谈论Google的Chrome OS能否击败Windows,但这是个问题吗?Chrome OS就根本不是一个新的操作系统,或者说他跟Windows比起来还称不上一个完整的操作系统。

    就像Google自己说的那样,Chrome OS依附于Linux操作系统,只是为其加了一层新的窗口系统,和Google自己的浏览器而已。

    更geek点的说,它只是一个“外壳”,而不是操作系统。核心层,和大量的userland程序才是建立起操作系统的关键。

    程序员和科技学者Dave Winer说到:

    同学们,我们要冷静呀,冷静!Google的新闻稿怎么说的?第一,Chrome OS运行于Linux;第二,Linux才是操作系统。第三:是Linux运行于上网本。无论如何,大多数人还是希望在上网本运行Windows XP,而非Linux。这才是真相之所在。

    也许Google会逐渐开发他们自己的革命性操作系统,它或者会像Google Base和Google Notepad那样落得失败的命运,也许会像Android系统那样运行于上网本,就像现在的Chrome OS将希望都寄托于上网本那样。

    不管怎么样,至少Chrome OS的新闻稿让一小撮用户兴奋起来并达到高潮,Google的目的达到了!

  • “DB2 9.5 SQL Procedure Developer認證考試735準備”系列教程

    [book id=”12345 /]

    您正準備報考DB2 SQL Procedure Developer認證(Exam 735)
    嗎?如果是這樣,那麼這個包含6篇教程的DB2認證考試準備系列將助您一臂之力!該系列教程涵蓋了所有基礎知識,即使您不打算馬上獲得認證,這套教程也非常適合您開始學習關於DB2 V9.5數據庫開發的知識。最新發布的是本系列教程的第5部分:高級SQL特性。更多>

    使用緩存構建更快的Web應用程序:Java緩存系統(Java Caching System,JCS)
    是一個用於Java應用程序的強大的分佈式緩存系統,它擁有簡單API並高度可配置。本文將概述JCS並展示如何使用它來提高Web應用程序的速度。 (Java)
     

    為Nokia N810開發感知GPS的應用程序,第1部分:開發環境:本文將介紹如何為Nokia N810 Internet Tablet配置開發環境,包括在目標開發機器上針對Python語言設置Eclipse環境。 (Linux)
     

    PHP編程的5個良好習慣:像其他語言一樣,開發人員可以用PHP編寫出各種質量級別的代碼。本文通過介紹5個好的PHP編程習慣,幫您提高代碼質量和編寫效率。 (Open source)
     

    教程:使用Eclipse和Java SE 6創建獨立Web Services應用程序,第1部分: Web Services服務端應用程序:本教程將帶領您學習如何使用Eclipse集成開發環境(IDE)
    和Java Platform, Standard Edition (Java SE) 6創建不依靠任何應用服務器、獨立運行的Web Services應用程序。本教程可以作為利用Java開發Web Services的入門資料。 (SOA and Web services)
     

    教程:在Spring Web MVC環境下使用Dojo:本教程主要探討如何整合Spring Web MVC框架與Dojo工具包,並通過實例演示了客戶端的dojox.grid.DataGrid小部件(Widget)
    與服務器端的Spring Web MVC框架進行數據交換的過程。 (Web development | Dojo專題)
     

    通過XML進行內容髮布:本文將介紹如何通過將印刷方式發布的文檔轉換為XML,並討論如何利用邏輯元素、屬性和層次結構以及XML中的結構簡化印刷式(以及PDF)
    發布。 (XML)
     

    來自Boost的Spirit解析器框架入門:本文帶領您學習如何使用來自Boost的具有高擴展性的Spirit解析器框架。該框架遵循EBNF(Extended Backus Naur Form)
    規範,使用它可以顯著縮短開發時間。 (AIX and UNIX)
     

    使用IBM Rational Quality Manager來管理您的第一個項目:IBM Rational再次推出了基於Jazz平台技術的新產品——IBM Rational Quality Manager。本文為您介紹了該產品為軟件開發的整個生命週期所提供的全面的測試規劃能力,以及測試評價管理能力。 (Rational | IBM Rational質量管理解決方案V8專題)
     

    設置DB2和AIX與條帶技術匹配以提高I/O性能:條帶化技術是一種廣泛使用的I/O負載均衡技術,可以在不增加額外硬件投入的情況下極大的提高I/O性能。本文針對這個主題,以DB2數據庫和AIX操作系統為例,介紹瞭如何規劃和設置好相關的內容,使I/O的性能達到最好。 (Information Management)
     

    在WebSphere sMash中集成Java和PHP:本文講述瞭如何使用Java Bridge從PHP訪問Java類。其中包括如何調用Java方法和訪問字段,使用PHP捕獲Java異常以及PHP和Java之間的類型轉換等內容。 (WebSphere | WebSphere sMash產品專題)

  • sql語句中插入數據的三種常用方法簡介

    我們在插入數據到數據庫中的時候,常用的語句如下:

    INSERT INTO table1(id, name, address) VALUES(1, ygl, ‘beijing’)——適用於T-sql和PL/SQL;

    SELECT id, name, address INTO table2 FROM table1——自動創建table2,T-sql用法;

    INSERT INTO table2(id, name, address) SELECT id, name, address FROM table1

    這裡簡單說一下第三句,由於可以指定插入到talbe2中的列,以及可以通過相對較複雜的查詢語句進行數據源獲取,可能使用起來會更加的靈活一些,但我們也必須注意,我們在指定目標表的列時,一定要將所有非空列都填上,否則將無法進行數據插入,還有一點比較容易出錯的地方就是,當我們寫成如下簡寫格式:

    INSERT INTO table2 SELECT id, name, address FROM table1

    此時,我們如果略掉了目標表的列的話,則默認會對目標表的全部列進行數據插入,且SELECT後面的列的順序必須和目標表中的列的定義順序完全一致才能完成正確的數據插入,這是一個很容易被忽略的地方,值得注意。

  • 如何改善MySQL數據裝載操作效率的方法

    多時候關心的是優化SELECT查詢,因為它們是最常用的查詢,而且確定怎樣優化它們並不總是直截了當。相對來說,將數據裝入數據庫是直截了當的。然而,也存在可用來改善數據裝載操作效率的策略,其基本原理如下:

    成批裝載較單行裝載更快,因為在裝載每個記錄後,不需要刷新索引高速緩存;可在成批記錄裝入後才刷新。

    在表無索引時裝載比索引後裝載更快。如果有索引,不僅必須增加記錄到數據文件,而且還要修改每個索引以反映增加了的新記錄。

    較短的SQL語句比較長的SQL語句要快,因為它們涉及服務器方的分析較少,而且還因為將它們通過網絡從客戶機發送到服務器更快。這些因素中有一些似乎微不足道(特別是最後一個因素),但如果要裝載大量的數據,即使是很小的因素也會產生很大的不同結果。我們可以利用上述的一般原理推導出幾個關於如何最快地裝載數據的實際結論:

    LOAD DATA(包括其所有形式)比INSERT效率高,因為其成批裝載行。索引刷新較少,並且服務器只需分析和解釋一條語句而不是幾條語句。

    LOAD DATA比LOAD DATA LOCAL效率更高。利用LOAD DATA,文件必須定位在服務器上,而且必須具有FILE權限,但服務器可從磁盤直接讀取文件。利用LOAD DATA LOCAL,客戶機讀取文件並將其通過網絡發送給服務器,這樣做很慢。

    如果必須使用INSERT,應該利用允許在單個語句中指定多行的形式,例如:

    可在語句中指定的行越多越好。這樣會減少所需的語句數目,降低索引刷新量。如果使用mysqldump生成數據庫備份文件,應該使用–extended-insert選項,使轉儲文件包含多行INSERT語句。還可以使用- – opt(優化) ,它啟用–extended-insert選項。反之,應該避免使用mysqldump的–complete-insert選項;此選項會導致INSERT語句為單行,執行時間更長,比不用–complete-insert選項生成的語句需要更多的分析。

    使用壓縮了的客戶機/服務器協議以減少網絡數據流量。對於大多數MySQL客戶機,可以用–compress命令行選項來指定。它一般只用於較慢的網絡,因為壓縮需要佔用大量的處理器時間。

    讓MySQL插入缺省值;不要在INSERT語句中指定將以任意方式賦予缺省值的列。平均來說,這樣做語句會更短,能減少通過網絡傳送給服務器的字符數。此外,語句包含的值較少,服務器所進行的分析和轉換就會較少。

    如果表是索引的,則可利用批量插入( LOAD DATA或多行的INSERT語句)來減少索引的開銷。這樣會最小化索引更新的影響,因為索引只需要在所有行處理過時才進行刷新,而不是在每行處理後就刷新。

    如果需要將大量數據裝入一個新表,應該創建該表且在未索引時裝載,裝載數據後才創建索引,這樣做較快。一次創建索引(而不是每行修改一次索引)較快。

    如果在裝載之前刪除或禁用索引,裝入數據後再重新創建或啟用索引可能使裝載更快。如果想對數據裝載使用刪除或禁用策略,一定要做一些實驗,看這樣做是否值得(如果將少量數據裝入一個大表中,重建和索引所花費的時間可能比裝載數據的時間還要長)。

    可用DROP INDEX和CREATE INDEX來刪除和重建索引。另一種可供選擇的方法是利用myisamchk或isamchk禁用和啟用索引。這需要在MySQL服務器主機上有一個帳戶,並對錶文件有寫入權。為了禁用表索引,可進入相應的數據庫目錄,執行下列命令之一: 

     

    對具有.MYI擴展名的索引文件的MyISAM表使用myisamchk,對具有.ISM擴展名的索引文件的ISAM表使用isamchk。在向表中裝入數據後,按如下激活索引:

    如果決定使用索引禁用和激活,應該使用第13章中介紹的表修復鎖定協議以阻止服務器同時更改鎖(雖然此時不對錶進行修復,但要對它像表修復過程一樣進行修改,因此需要使用相同的鎖定協議)。

    上述數據裝載原理也適用於與需要執行不同操作的客戶機有關的固定查詢。例如,一般希望避免在頻繁更新的表上長時間運行SELECT查詢。長時間運行SELECT查詢會產生大量爭用,並降低寫入程序的性能。一種可能的解決方法為,如果執行寫入的主要是INSERT操作,那麼先將記錄存入一個臨時表,然後定期地將這些記錄加入主表中。如果需要立即訪問新記錄,這不是一個可行的方法。但只要能在一個較短的時間內不訪問它們,就可以使用這個方法。使用臨時表有兩個方面的好處。首先,它減少了與主表上SELECT查詢語句的爭用,因此,執行更快。其次,從臨時表將記錄裝入主表的總時間較分別裝載記錄的總時間少;相應的索引高速緩存只需在每個批量裝載結束時進行刷新,而不是在每行裝載後刷新。這個策略的一個應用是進入Web服務器的Web頁訪問MySQL數據庫。在此情形下,可能沒有保證記錄立即進入主表的較高權限。

    如果數據並不完全是那種在系統非正常關閉事件中插入的單個記錄,那麼減少索引刷新的另一策略是使用MyISAM表的DELAYED_KEY_WRITE表創建選項(如果將MySQL用於某些數據錄入工作時可能會出現這種情況)。此選項使索引高速緩存只偶爾刷新,而不是在每次插入後都要刷新。

    如果希望在服務器範圍內利用延遲索引刷新,只要利用–delayed-key-write選項啟動mysqld即可。在此情形下,索引塊寫操作延遲到必須刷新塊以便為其他索引值騰出空間為止,或延遲到執行了一個flush-tables命令後,或延遲到該索引表關閉。

  • 微軟認證:MCSE證書申請流程(附圖)

    考完MCSE後,如何申請證書,不明白的過來看貼!
    考完MCSE考試要申請證書,申請流程如下:
    1.登入https://mcp.microsoft.com/mcp
    2.登入(使用msn的帳號密碼登入)
    考完1科後,微軟會分配一個微軟ID給你,會發兩封郵件,一封是ID號,另一封是激活碼,你按郵件裡的提示,現MSN號綁定。
    以後用MSN帳號就直接打開了MCP的網站(我想大家肯定是這一步沒做,所以無法申請證書) 
     MCSEMCSE02
    按照郵件提示完成MSN與微軟ID號綁定。

    3.綁定後,用MSN登入後可到view my >transcript,如圖 
     
    MCSE03
    若成績出來後,下方的Microsoft Certification Status會出現Microsoft Certified Professional或
    Microsoft Certified Systems Administrator等等
    而最下面是顯示你考過的科目
    Microsoft Certification Exams Completed Successfully
    Exam ID
    270.290 . . . (你考的科目) 

     
    MCSE05

    若在Microsoft Certification Status有出現Microsoft Certified ProfessionalORMicrosoft Certified Systems AdministratorORMicrosoft Certified Systems Engineer,表示你考過了,那就可以去申請證書
    4.證書申請請按左邊的Program Benefits -> Welcome Kits and Certificates進入
    5.拉到最下面會顯示你的地址及郵遞區號等等,最下面會顯示他要寄什麽證書給你,如

    These items will be shipped to the shipping address you have specified above:
    o MCSE on Windows Server 2003 Welcome Kit
    表示他要寄mcse,看你考到什麽他寄什麽,若地址有錯,請到view my>profile去修改,不然會收不到!

    微軟考試結束後需要考生到微軟網站上進行註冊,註冊時需要留下考生的證書郵寄地址,從現在起該地址不能包含POBOX(郵箱)的不明確寄送地址,帶有此信息的證書可能被暫緩郵寄。
    微軟以後不再免費提供紙質證書,09年7月1號起,微軟不再免費提供紙質證書,他們推薦下載電子版自行打印,如果一定要的話,需要支付郵費。相關問題可以致電微軟或者訪問微軟網站http://technet.microsoft.com/zh-tw/default.aspx

     

    微軟免費香港電話:108001520952

  • 打開網址緩慢或者無法打開原因

    最近部落格的服務器在美國,最近出現打開網址緩慢或者無法打開,原因是服務器最近不穩定,請大大們見諒!