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

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