2017年4月15日 星期六

[電腦知識]下載備份 Facebook 的所有訊息、相片和對話紀錄

如果你有在使用 Facebook 的話,一定不能不知道臉書其實也內建批次下載、備份資料的功能,這項功能可以為你在 Facebook 上共享的個人資料備份,能將所有資料,包含塗鴉牆上的貼文、相片、影片、聊天是訊息紀錄、個人檔案資料等打包成單一檔案,讓使用者下載、留存,如果你想為自己的社交網路生活留下備份,可以透過 Facebook 提供的「下載資料副本」功能來取得所有臉書上的資料。

STEP 1
開啟你的 Facebook 個人頁面,點選右上角的倒三角形圖示,然後選擇「設定」。
下載備份 Facebook 的所有訊息、相片和對話紀錄
STEP 2
開啟一般帳號設定後,點選底下的「下載一份你的 Facebook 資料副本」(如下圖箭頭所示)。
下載備份 Facebook 的所有訊息、相片和對話紀錄
STEP 3
進入 Facebook 下載資料副本的功能後,點選「開啟檔案庫」,在備份前會要求你輸入密碼、確認身份,沒問題後才會開始製作備份。
下載備份 Facebook 的所有訊息、相片和對話紀錄
STEP 4
如果你已經使用 Facebook 很長一段時間,或者帳戶裡有許多相片、影片的話,製作資料封存都會耗費許多時間,Facebook 會在完成時發 Email 通知你,可以先把網頁關掉,或是跳到其他頁面繼續使用。
下載備份 Facebook 的所有訊息、相片和對話紀錄
STEP 5
當 Facebook 備份製作完成後,回到下載資料頁面,點選「下載存檔」即可把資料副本通通下載、保存下來,在下載前必須再次重新輸入密碼,確認你是帳號本人才能夠下載資料。
下載備份 Facebook 的所有訊息、相片和對話紀錄
STEP 6
將下載的備份解壓縮,點選 index.htm 即可看到你的個人頁面,在其他資料夾裡可以找到相片、影片以及其他備份資料。
下載備份 Facebook 的所有訊息、相片和對話紀錄
From : https://free.com.tw/facebook-download-your-information/

[電腦知識]備份FB聊天室訊息

Step 1.  使用 Google Chrome Web Browser

Step 2.  https://m.facebook.com/messages/

Step 3.  點入欲備份那個人的聊天室

Step 4.  按下 Ctrl+Shift+J (Windows/Linux) 或 Cmd+Opt+J (Mac) 進入 Console

Step 5.  複製下面代碼並貼上到上述彈出的視窗

         var id =
         setInterval(function () { document.getElementById('see_older')
                    .getElementsByClassName('content')[0].click(); }, 500);

Step 6.  (可略)等到全部的訊息都載入完成之後鍵入 clearInterval(id)

Step 7.  Ctrl+S 或 Cmd+S 儲存成 HTML 檔案
             Ctrl+P 或 Cmd+P 匯出成 PDF  檔案

步驟7如果游標指到Console會無法成功儲存(變成Console指令)
要在右側對話框的區塊按Ctrl+S或是Ctrl+P..或是簡單一點滑鼠右鍵選擇另存(Html)或列印即可


資料庫中CHAR,VARCHAR,VARCHAR2,NVARCHAR,NVARCHAR2類型的區別與使用

varchar,nvarchar, varchar2,nvarchar2的區別
四個類型都屬於變長字符類型, varchar和varchar2的區別在與後者把所有字符都占兩字節,前者只對漢字和全角等字符占兩字節。 nvarchar和nvarchar2的區別和上面一樣, 與上面區別在於是根據Unicode 標準所進行的定義的類型,通常用於支持多國語言類似系統的定義。
varchar2,nvarchar2為oracle自行定義

ORACLE
1.char
char的長度是固定的,比如說,你定義了char(20),即使你你插入abc,不足二十個字節,資料庫也會在abc後面自動加上17個空格,以補足二十個字節;
char是區分中英文的,中文在char中占兩個字節,而英文占一個,所以char(20)你只能存20個字母或10個漢字。
char適用於長度比較固定的,一般不含中文的情況
以"123號"為例,length為9,lengthb則為10

2.varchar/varchar2
varchar是長度不固定的,比如說,你定義了varchar(20),當你插入abc,則在資料庫中只占3個字節。
varchar同樣區分中英文,這點同char。
varchar2基本上等同於varchar,它是oracle自己定義的一個非工業標準varchar,不同在於,varchar2用null代替varchar的空字符串
varchar/varchar2適用於長度不固定的,一般不含中文的情況
(1)varchar2把所有字符都占兩字節(Byte)處理(一般情況下),varchar只對漢字和全角等字符占兩字節,數字,英文字符等都是一個字節;(以oracle實測,英數字只佔1 Byte)
(2)VARCHAR2把空串等同於null處理,而varchar仍按照空串處理; 
(3)VARCHAR2字符要用幾個字節存儲,要看資料庫使用的字符集, 大部分情況下建議使用varchar2類型,可以保證更好的兼容性。
以"123號"為例,varchar2,length為4,lengthb則為5

3.nvarchar/nvarchar2
nvarchar和nvarchar2是長度不固定的
nvarchar不區分中英文,比如說:你定義了nvarchar(20),你可以存入20個英文字母/漢字或中英文組合,這個20定義的是字符數(Bit)而不是字節數(Byte)
nvarchar2基本上等同於nvarchar,不同在於nvarchar2中存的英文字母也占兩個字節
nvarchar/nvarchar2適用於存放中文
以"123號"為例,nvarchar2,length為4,lengthb則為8
PS:nchar/nvarchar2是專為unicode而設計的, 而每個字符佔多少個byte, 便要看Oracle的national characterset使用那一個字集而定

區別:
1.CHAR的長度是固定的,而VARCHAR2的長度是可以變化的, 比如,存儲字符串「abc",對於CHAR (20),表示你存儲的字符將占20個字節(包括17個空字符),而同樣的VARCHAR2 (20)則只占用3個字節的長度,20隻是最大值,當你存儲的字符小於20時,按實際長度存儲。
2.目前VARCHAR是VARCHAR2的同義詞。工業標準的VARCHAR類型可以存儲空字符串,但是oracle不這樣做,儘管它保留以後這樣做的權利。Oracle自己開發了一個數據類型VARCHAR2,這個類型不是一個標準的VARCHAR,它將在資料庫中varchar列可以存儲空字符串 的特性改為存儲NULL值。如果你想有向後兼容的能力,Oracle建議使用VARCHAR2而不是VARCHAR。
3.char 的NULL值佔用存儲空間 
  varchar2 NULL值不佔用存儲空間 
  插入同樣數量的NULL值,varchar2的插入效率高於char 
4.插入資料 
  char的效率低於varchar2 
5.更新資料 
   更新列建立索引char效率高於varchar2,否則差不多 
6.資料檢索 
   varchar2效率高於char 

何時該用CHAR,何時該用varchar2?
CHAR與VARCHAR2是一對矛盾的統一體,兩者是互補的關係.
VARCHAR2比CHAR節省空間,在效率上比CHAR會稍微差一些,即要想獲得效率,就必須犧牲一定的空間,這也就是我們在資料庫設計上常說的『以空間換效率』。
VARCHAR2雖然比CHAR節省空間,但是如果一個VARCHAR2列經常被修改,而且每次被修改的數據的長度不同,這會引起『行遷移』(Row Migration)現象,而這造成多餘的I/O,是資料庫設計和調整中要盡力避免的,在這種情況下用CHAR代替VARCHAR2會更好一些。

PS:資料庫儲存引擎對不同的資料型態有不同的對待方式,固定長度欄位直接搜尋分頁指標位置取出資料,可變長度欄位會先算資料實際長度再進入分頁取資料,速度本來就會比固定長度慢一些,用 max 方式宣告的話,儲存引擎會將它視為 LOB 資料型態,會將它儲存到額外的分頁內,光是在磁碟中搜尋這些分頁的成本會比計算長度更高 (別忘了這是 I/O 動作),會使得查詢和寫入速度都變慢。資料少量時看不出來,等量很大時就準備哭哭吧。

MySQL

char是定長的,varchar是變長的。varchar2應該是varchar的升級,似乎只有ORACLE才有,這裡不作討論。

char定長存儲,速度快,但是存在一定的空間浪費,適用於欄位不是很大,對速度要求高的場合。速度快是因為其在物理上是按定長存儲的,這樣,就可以根據偏移址一次取出固定長度的字符。

varchar變長存儲,所以效率不如char。varchar在存儲時,在物理上要先存儲該欄位的實際長度,然後才是內容。這樣讀取的時候,就要讀取兩次,一次讀它的長度,然後才是內容。所以它的訪問速度會比char慢一些。但它可以節省空間。

由於mysql自身的特點,如果一個數據表存在varchar欄位,則表中的char欄位將自動轉為varchar欄位。在這種情況下設置的char是沒有意義的。所以要想利用char的高效率,要保證該表中不存在varchar欄位;否則,應該設為varchar欄位。

原文網址:https://read01.com/QExoxE.html