顯示具有 DB 標籤的文章。 顯示所有文章
顯示具有 DB 標籤的文章。 顯示所有文章

2013-09-30

在 windows 裡架起 Cassandra

install Cassandra in windows system

在 windows 系統上,加起 cassandra,實作起來不難,簡單步驟為:
(1) 安裝 java (JRI)
(2) 下載 cassandra tar, 並解開。
(3) 設定新增兩個系統環境變數: JAVA_HOME , CASSANDRA_HOME
(4) 修改 cassandra 設定檔 cassandra.yaml , 設好 cassandra 目錄所在。
(5) 啟動 cassanda,完成。


2013-08-28

How to union multiple table in MySQL?

database: MySQL

如果有多個 table 要合併起來,如果有 foreign key 要對應,一般都是用上 join 的語法。
但是,table 之間沒有關係,純綷只是要將各 table 中的所有 record 集合起來,那麼,就可以用上 union 的語法了:

select agentid as id, agentname as name  from agent
union
select cid, name from category
union
select id, adid from admanagement;

result:
id name
--------------
1 agent1
2 agent2
1 ca1
2 ca2
1 ad1
2 ad2

也可以加上一個欄位(文字或數值),直接來區分屬於那個 table 的內容:


select agentid as id, agentname as name, "agent" as type from agent
union
select cid, name, "category" from category
union
select id, adid, "ad" from admanagement;

result:

id name type
-----------------------
1 agent1 agent
2 agent2 agent
1 ca1 category
2 ca2 category
1 ad1 ad
2 ad2 ad

後記: 當資料量大時,效能不知如何...



後來,再查時,發現使用 union all 的速度會快過使用 union,原因在於 union all 不會去除重複,而 union 語法時,MySQL 會試著去過濾重複的資料。因此,如果確定 table 之間不會有重複的資料,可以直接下 union all 試看看:

select agentid as id, agentname as name, "agent" as type from agent
union all
select cid, name, "category" from category
union all
select id, adid, "ad" from admanagement;


2012-09-10

MySQL exception: Host 'host_name' is blocked

[環境]

  • client
  1. 數台機器定時向 MySQL database 取得資料。
  2. windows 2008 R2 standard
  3. .net 2.0 sp2
  4. c#
  • db server
  1. MySQL 5.0.45
  2. windows 2008 R2 standard


[狀況]

突然間(about 2am. orz),有一台機器連不到 MySQL,但其他機器仍正常運作。

MySql.Data.MySqlClient.MySqlException: Host 'xxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'   在 MySql.Data.MySqlClient.PacketReader.CheckForError()
   在 MySql.Data.MySqlClient.NativeDriver.Open()
   在 MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   在 MySql.Data.MySqlClient.MySqlPool.GetConnection()
   在 MySql.Data.MySqlClient.MySqlConnection.Open()
   在 SQLDB.MySQLNativeDB.reCreateSqlCommand() 位置 D:\projects\vs2008\source\MatchEngine\Scupio2.0\SQLDB\MySQLNativeDB.cs:行号 132
   在 SQLDB.MySQLNativeDB.ExecuteCmdNonQuery(String sqlcmd, IDataParameter[] parameters) 位置 D:\projects\vs2008\source\MatchEngine\Scupio2.0\SQLDB\MySQLNativeDB.cs:行号 86

這個例外訊息看起來蠻明確的: 機器 xxx 被 MySQL db server 擋(block)了。


2011-12-02

NoSQL (II)

主要參考自 IThome
   NoSQL解決資料庫暴量的新方法
   了解NoSQL不可不知的5項觀念  :
   快速認識4類主流NoSQL資料庫  : 這4大類型包括了Key-Value資料庫、記憶體資料庫、圖學資料庫和文件資料庫。

[terms]:
avalanche of data: 雪崩資料(大量資料或瞬間之高流量)
split-brain
map-reduce: 映射 與 化簡
parallel aggregated queries: 平行聚合查詢

about NoSQL

這篇是看了 InfoQ 上的影片: NoSQL誤用和常見陷阱分析(孫立) 後,記錄下的一些摘要:

NoSQL:
1. 有許多個版本,如 TtServer(
Tokyo Cabinet), ....
2. 升級版本之相容性: data format, API interface
3. 精通它


2011-10-28

MongoDB 小試

今天又測試了 MongoDB,覺得還蠻有趣的,只管新增資料,就可以直接查詢了,毋須留意 table schema。

主要有兩個測試,分列如下:

[Question 1]
     relational database 中的一筆資料有多個欄位,在 MongoDB 中如何達到這種效果呢?

2011-10-27

Starting survey of MongoDB (NoSQL)

最近在研究 NoSQL,先從 MongoDB 開始。
而 NoSQL 那麼多種,為何會選擇 MongoDB 呢? 其實我並沒有比較過,只不過訂閱的 RSS 中似乎 MongoDB 出現的次數較多,印象分數較高的緣故吧!
先從 MongoDB 研究起,也算是對於 name value pair 之非 Relational DB、NoSQL 的初步熟悉吧!

[Steps] as follows:
  1. 下載適合OS的版本: www.mongodb.org/downloads
    我下載的是 win 32 版本。
  2. 解開之目錄下,MongoDB 執行檔在 bin 目錄下: bin\mongod.exe
  3. 直接執行的話,會使用預設的資料庫檔案路徑: c:\data\db,但必須要自行建立目錄。
    也可以啟動時指定到另外目錄,如: mongod --dbpath d:\job2\mongo
  4. 執行 mongo.exe,這是直接下 sql command 來操作 MongoDB 的 console。

2009-10-16

安裝 SQL server 2008 Express

這兩天安裝了 SQL server 2008 Express, 終於也順利安裝完成, 供其他台機器上的系統存取。

但是, 在安裝的過程中, 並非那麼地 "next-step" 順利。

主要遇到了幾個問題:
(1) 安裝失敗
(2) 安裝成功後, 其他台無法馬上遠端連線之, 因為, SQL server 2008 Express 預設只提供 local 連線。

是的, 所以, 有了這一篇。
當然了, 如果你到網海中去搜尋, 一定也可以解決的。

接著就來描述一下這兩天的過程吧!

2009-10-14

MySQL 縮小 MyISAM table 檔案大小

當刪除大量的資料時, MyISAM 的檔案(MYD, MYI)並不會自動變小。

這時, 可以手動下一些指令:
optimalze table tablename
或
repair table tablename

不過, 如果資料量很大的話, 需要不少的時間。


原先資料筆數有 4千多萬筆, table 檔案大小共有 6.24 G。
刪除了 2千多萬筆後, table 檔案並不見縮小。

下了 repaire table 之後, 嗯..., 此時 MYI 不斷地由 0 開始長大。
很久之後, 成功了。
檔案大小共 2.67 G。

這時, 如果再下 optimize table, 會另外產生 TMM 檔案, 直到大小與 MYI 一致, 突然將 MYI 交換, TMM 檔就不見了。
這次速度就很快了, 大小仍同。

MYI 應該是 index file 吧。