MySQL

  • Linux下C语言连接MySQL

    ·

    相对于Window下的设置,Linux要简单的很多。

    1. 示例程序

    $ vi mysql-c-api.c #include <stdio.h> #include "mysql/mysql.h" int main(){ MYSQL mysql; mysql_init(&mysql); mysql_options(&mysql,MYSQL_OPT_COMPRESS,0); mysql_options(&mysql,MYSQL_INIT_COMMAND,"SET autocommit=0"); if (!mysql_real_connect(&mysql,"10.2.3.4","user","passwd","database",0,NULL,0)) { fprintf(stderr, "Failed to connect to database: Error: %sn", mysql_error(&mysql)); } return 0; }

    2. 编译命令

    在MySQL编译后的二进制文件中,有一个很有用的二进制文件“mysql_config”(一般和mysql命令在同一个目录下),我们可以通过这个程序找到需要的头文件和连接库:

    $ gcc -o a.out $(mysql_config --cflags) mysql-c-api.c $(mysql_config --libs) $ ./a.out
  • 详解MyISAM Key Cache(中篇)

    ·

    前篇中介绍了Key Cache的基本机制,并且介绍了Key Cache的LRU算法。作为对LRU算法的改进,MyISAM还提供了另一个缓存算法:“Midpoint Insertion Strategy”。本文将重点介绍该算法的原理和配置。

    1. 相关参数

    该策略涉及的参数有:key_cache_division_limitkey_cache_age_threshold

    2. 原理介绍

    (1) 该策略将前面的LRU队列(LRU Chain)分成两部分,hot sub-chain和warm sub-chain。并根据参数key_cache_division_limit划分,总保持warm sub-chain在这个百分比以上。默认情况key_cache_division_limit是100,所以默认时候只有warm sub-chain,即LRU Chain。
    (注:Multiple Key cache情况,每个key cache都有对应的key_cache_division_limit值) (more…)

  • 详解MyISAM Key Cache(前篇)

    ·

    本文将分为前、中、后三篇,分别介绍MyISAM Key Cache的一般机制、Mid-point strategy、状态、参数和命令。

    “Cache为王”,无所不在。为了最小化磁盘I/O,MyISAM将最频繁访问的索引块(“index block”)都放在内存中,这样的内存缓冲区我们称之为Key Cache,它的大小可以通过参数key_buffer_size来控制。在MyISAM的索引文件中(MYI),连续的单元(contiguous unit)组成一个Block,Index block的大小等于该BTree索引节点的大小。Key Cache就是以Block为单位的。 (more…)

  • MySQL Slow Log慢日志分析(一)

    ·

    医生给病人诊断的时候,一般会使用听诊器来诊断肺部是否正常。如果你的MySQL出现了性能问题,第一个需要“诊断”的就是slow log(慢日志)了。

    slow log文件很小,使用more less等命令就足够了。如果slow log很大怎么办?这里介绍MySQL自带的工具mysqldumpslow来帮你解析慢日志(也可以跳过本文,直接阅读Manual)。

    1. 基本使用

    $mysqldumpslow slow.log > slow.dat
    $more slow.dat

    (more…)

  • MySQL 5.5 Semi Sync Replication

    ·

    今天看到MySQL5.5放出了第一个版本MySQL 5.5 Community Edition – Milestone Release,最大的增强莫过于加入了Semi Sync Replication的支持(虽然仍不完善)。

    这里做一个科普,简单介绍一下Semisynchronous Replication: (more…)

  • Xtrabackup1.0发布

    ·

    RC版本发布的两个月后,Percona发布了Xtrabackup的Release 1.0

    除了修复一些BUG,最大的改变在于开始支持Windows了。如果由于一些原因,你不得不在Windows上运行MySQL/InnoDB的话,也可以使用使用Xtrabackup了。

    在Xtrabackup的wiki上简单的介绍了一下实现的原理: (more…)