Ubuntu下mysql安裝與C++開發使用

1 安裝Tutorial

http://wiki.ubuntu.org.cn/MySQL%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97

ubuntu安裝完成之後,配置文件在/etc/mysql/my.conf下,修改以達到遠程登錄的目的等。

    常用操作:

           切換到有權限的用戶, service mysql restart,重啓服務


2 安裝C/C++ Connector

具體是在幾天前安裝的,記得不他清楚了。

只要把對應的C/C++庫安裝上,即可使用。

注意一點是,只用CPPConnector,也要安裝C的Connector,並在代碼中連接C的Connector對應的lib-----libmysqlclient.a


3 數據庫的連接池的使用

性能對比:土製連接池 v.s. 普通的連接創建/銷燬

    使用連接池10次select操作耗時:3874107us

不使用連接池10次select操作耗時:24464196us


4 Waiting for table metadata lock 問題

由於後來數據庫改用了連接池,以及加入了事務處理,將所有的連接池裏的auto connection選項都置爲false。

在服務器不停止的情況下,運行ALATER等DDL語言(MySQL四類語言之一DDL DML DCL TCL),會出現操作阻塞。

運行show processlist;可以看到

ALTER ×××× 操作的狀態爲Waiting for table metadata lock.

大概原因跟事物有關,由於連接長期不斷,可能會佔鎖,再加上運行了DDL,所以導致阻塞。如果只是運行其它不需要鎖的操作,應該沒問題。

一些有用的操作:http://stackoverflow.com/questions/13148630/how-do-i-find-which-transaction-is-causing-a-waiting-for-table-metadata-lock-s

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章