当前位置:Gxlcms > 数据库问题 > postgresql小计

postgresql小计

时间:2021-07-01 10:21:17 帮助过:10人阅读

 

12.

linux下编译mysql connector报错
CMAKE_CXX_COMPILER
是因为没有安装gcc-c++

13.

cmake . -DBOOST_ROOT=/mnt/dbbackup/boost_1_65_1
指定boost目录,必须是绝对路径

14.

试用mysql connector c++的时候,工程的debug和release要与对应的dll和lib对应,不然,string使用会报错

15.

根据mysql 官网编译生成c++ connector工程,然后编译出release和debug版本,对应的cmake等工具,可以在visual studio安装目录下查找,编译的时候要把对应的lib放进去,这样的好处就是可以直接使用dll中的函数,不用查找函数名字,在使用的目录要把对应的dll放过去

16.

数据库中,连接是默认的,编码是无bom的utf8,编码指定是utf8的是有bom的utf8编码,mysql的workbentch默认是使用无bom的utf8

17.

show  full  processlist
查看现在的数据库连接动态
kill 2222
杀掉一个进程

18.

innodb_flush_log_at_trx_commit = 2  
# 0:如果innodb_flush_log_at_trx_commit的值为0,log buffer每秒就会被刷写日志文件到磁盘,提交事务的时候不做任何操作(执行是由mysql的master thread线程来执行的。  
# 主线程中每秒会将重做日志缓冲写入磁盘的重做日志文件(REDO LOG)中。不论事务是否已经提交)默认的日志文件是ib_logfile0,ib_logfile1  
# 1:当设为默认值1的时候,每次提交事务的时候,都会将log buffer刷写到日志。  
# 2:如果设为2,每次提交事务都会写日志,但并不会执行刷的操作。每秒定时会刷到日志文件。要注意的是,并不能保证100%每秒一定都会刷到磁盘,这要取决于进程的调度。  
# 每次事务提交的时候将数据写入事务日志,而这里的写入仅是调用了文件系统的写入操作,而文件系统是有 缓存的,所以这个写入并不能保证数据已经写入到物理磁盘  
# 默认值1是为了保证完整的ACID。当然,你可以将这个配置项设为1以外的值来换取更高的性能,但是在系统崩溃的时候,你将会丢失1秒的数据。  
# 设为0的话,mysqld进程崩溃的时候,就会丢失最后1秒的事务。设为2,只有在操作系统崩溃或者断电的时候才会丢失最后1秒的数据。InnoDB在做恢复的时候会忽略这个值。  
# 总结  
# 设为1当然是最安全的,但性能页是最差的(相对其他两个参数而言,但不是不能接受)。如果对数据一致性和完整性要求不高,完全可以设为2,如果只最求性能,例如高并发写的日志服务器,设为0来获得更高性能 

19.

max_allowed_packet = 16M #服务器发送和接受的最大包长度

20.

mysql安装完成后,这个设置的非常小,应该是8M,会导致数据库读写多的时候,磁盘操作太多,而卡顿整个系统。所以这里需要设置的大一些,这个是mysql做服务端时必须修改的一个参数

innodb_buffer_pool_size = 64M  
# InnoDB使用一个缓冲池来保存索引和原始数据, 不像MyISAM.  
# 这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少.  
# 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的80%  
# 不要设置过大,否则,由于物理内存的竞争可能导致操作系统的换页颠簸.  
# 注意在32位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制,  
# 所以不要设置的太高.

 21.

postgresql执行结束后,判断结果是否成功,有几种结果

typedef enum
{
    PGRES_EMPTY_QUERY = 0,        /* empty query string was executed */
    PGRES_COMMAND_OK,            /* a query command that doesn‘t return
                                 * anything was executed properly by the
                                 * backend */
    PGRES_TUPLES_OK,            /* a query command that returns tuples was
                                 * executed properly by the backend, PGresult
                                 * contains the result tuples */
    PGRES_COPY_OUT,                /* Copy Out data transfer in progress */
    PGRES_COPY_IN,                /* Copy In data transfer in progress */
    PGRES_BAD_RESPONSE,            /* an unexpected response was recv‘d from the
                                 * backend */
    PGRES_NONFATAL_ERROR,        /* notice or warning message */
    PGRES_FATAL_ERROR,            /* query failed */
    PGRES_COPY_BOTH,            /* Copy In/Out data transfer in progress */
    PGRES_SINGLE_TUPLE            /* single tuple from larger resultset */
} ExecStatusType;

成功并不只有一个,第一个是查询空的正确返回,第二个是没有返回值的正确返回(比如insert,update),第三个是查询有返回值的正确返回(比如select)

postgresql小计

标签:date   rom   版本   properly   copy   工具   myisam   dbca   变量   

人气教程排行