• MySQL


    9. 查看配置文件来源

    配置文件,首先由命令行参数中的--defaults-file指定。若该该参数不存在,则按mysqld --verbose --help指定的文件顺序进行读取。


    查看进程


    查看是否存在--defaults-file参数,若存在,则参数值即为MySQL使用的配置文件。


    打印配置信息


    如果命令行参数未指定配置文件,则MySQL按上述顺序查找配置文件。



    8. 文件结构

    每一个MySQL表主要由三部分组成:元数据、索引、数据。元数据即表定义等基本信息。


    MyISAM

    每一个MyISAM表,均对应三个同名的.frm,   .MYI,   .MYD文件。

    存放内容如下

    .frm:元数据

    .MYI:索引

    .MYD:数据


    说明:可以通过在不同的数据库目录之间,自由移动上述三个文件,来实现MyISAM表的移动。InnoDB表不具有此特性,包括FILE_PER_TABLE表空间的InnoDB表。


    InnoDB

    每一个InnoDB表,均对应一个同名.frm文件,此文件无实际意义。

    全部表的元数据,都存放在系统表空间。

    每个表的索引和数据,要么同时存放在共享的系统表空间,要么同时存放在各自的FILE_PER_TABLE表空间。


    系统表空间

    文件结构:ibdata文件集合,如ibdata1,ibdata2等。

    类型:全局共享,所有数据库的所有表共享ibdata文件。

    作用:

    1. 存放全部表的元数据;

    2. 作为undo log, change buffer, doublewrite buffer等的存储区;

    3. 存放部分表的索引和数据。


    FILE_PER_TABLE表空间

    文件结构:与该表同名的.ibd文件,如employee.ibd。

    类型:每个表有自己的表空间,每个表空间有自己的.ibd数据文件。

    作用:存放该表的索引和数据。


    说明:

    1. 系统表空间和FILE_PER_TABLE表空间只服务于InnoDB类型的表,即ibdata1和.ibd文件为InnoDB所有;

    2. 当全局系统变量innodb_file_per_table = off时,新创建的表索引和数据,存放在系统表空间,即ibdata中;

    3. 当全局系统变量innodb_file_per_table = on时,创建新表时,会同时创建同名的.idb文件,用于存放该表的索引和数据。



    7. select选项

    sql_no_cache:不使用query cache。既不从query cache中查找结果,也不将结果放入query cache。

    select sql_no_cache * from test where id = 1045;



    6. 超时问题

    client不发起任何查询,一段时间后mysql自动关闭该连接。


    6.1 系统变量wait_timeout

    参考《MySQL系统变量》


    6.2 C++ client连接库

    从连接池中取出一条连接,需要验证连接是否有效,bool sql::Connection::isValid()函数可以完成


    bool sql::Connection::isClosed()函数不具有此项功能。



    5. 使用connector-c++


    下载

    官网下载.tar.gz安装包,最后使用FQ软件否则可能不能切换平台。


    解压


    include目录包含头文件,lib目录包含库文件(动态库和静态库都有)。


    解决boost依赖

    connector-C++使用了boost库,还是动态依赖,这是一个败笔。

    下载boost库,解压


    boost目录是整个库的头文件目录,里面是hpp头文件。把整个boost头文件目录拷出来放到工程目录下,话说boost中有很多header only库,直接引入头文件即可使用还是挺方便的。


    编译


    -I:指定头文件目录。我把mysql的include和boost的boost合并了。

    ./lib/libmysqlcppconn-static.a:静态编译

    mysql中用到了线程和时间函数,所以加入-lpthread -lrt -ldl库,否则报链接错误。



    4. 查看版本号

    查看mysql版本号:select version();

    查看innodb版本号:select @@innodb_version;



    2. 禁止查询结果放入缓存

    select SQL_NO_CACHE * from table;



    1. 清空查询缓存

    RESET QUERY CACHE;

  • 相关阅读:
    摘录一下 上海富豪颜立燕拆借爱建资金路径曝光 暴富的关键词
    pixysoft.framework.security.sso 开发实录
    Pixysoft.Framework.Apis 开发实录
    动态加载Assembly的一系列恶心问题
    让我们开发的系统具有学习能力 我的突发奇想!
    利用RealProxy,强化AOP,在”牛粪“的周围插上”鲜花“
    Pixysoft.Applications.BugTraces 开发实录
    打造第二代测试框架TestDriven 2.0(四)—— 代码对象化建模技术
    软件工程革命三部曲 —— 外传 过程控制
    破解typemock 流水账
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/7475597.html
Copyright © 2020-2023  润新知