主页 |  MySQL 消息 |  常见问题 |  Feeds |  发布 |  回复 |  归档 |  Aggregate feed RSS 2.0 中文 English Deutsch Español Français Italiano 日本語 Русский Português
表示 进入内容 130578 下一步 30 较早的记录
[MySQL FAQ]系列 — 打开general log到底影响多大
+0 Vote Up -0Vote Down

我们知道,有时候为了debug或跟踪方便,会临时打开MySQL的general log。如果在线业务请求比较频繁的话,会导致瞬间产生大量的日志,一定程度上会影响IOPS性能。

此外,我们还有一种变通的办法,那就是打开slow query log,然后设置 long_query_time = 0,这样也可以记录所有请求log,而且记录的log比general log还要来的小,他产生的IOPS性能影响可能会比直接打开general log的影响来的小,可事实果真如此吗?我们来对比测试下就知道了。

  [获取更多。。]
[MySQL FAQ]系列 — 不同的binlog_format会导致哪些SQL不会被记录
+0 Vote Up -0Vote Down

我们都知道binlog_format有三种可选配置:STATEMENT、ROW、MIXED,相应地,基于这三种模式的Replication分别称为SBR(STATEMENT BASED Replication)、RBR、MBR。 同时,我们也知道,MySQL Replication可以支持比较灵活的binlog规则,可以设置某些库、某些表记录或者忽略不记录。

通常地,我们强烈建议不要设置这些规则,默认都记录就好,在Slave上也是如此,默认所有库都进行Replicate,不要设置DO、IGNORE、REWRITE规则。 如果非要设置这些规则的话,可能会导致某些场景下或者某些特定的SQL无法被记录,就需要特别注意了。

我经过比较简单的测试,不同的binlog_format可能会导致某些SQL不被记录的情况总结如下:

  [获取更多。。]
[MySQL FAQ]系列 — MySQL复制中slave延迟监控
+0 Vote Up -0Vote Down

在MySQL复制环境中,我们通常只根据 Seconds_Behind_Master 的值来判断SLAVE的延迟。这么做大部分情况下尚可接受,但并不够准确,而应该考虑更多因素。

首先,我们先看下SLAVE的状态:

yejr@imysql.com [(none)]> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
***
Master_Log_File: mysql-bin.000327
Read_Master_Log_Pos: 668711237
Relay_Log_File: mysql-relay-bin.002999
Relay_Log_Pos: 214736858
Relay_Master_Log_File: mysql-bin.000327
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
***
Skip_Counter: 0
Exec_Master_Log_Pos: 654409041
Relay_Log_Space: 229039311
***
Seconds_Behind_Master: 3296
***

可以看到 Seconds_Behind_Master 的值是

  [获取更多。。]
MySQL小密訣 - 如何以SQL_MODE使資料輸入更有效率:
Employee +0 Vote Up -0Vote Down

透過MySQL的SQL_MODE參數可以影響MySQL的行為,使我們在輸入/匯入或更改資料時能使MySQL依我們希望的方式來處理資料.這個參數可在my.cnf或mysqld開機參數設定到整個資料庫,或在登入MySQL後以”set SQL_MODE =;”的方式臨時改變MySQL對當下的連線的行為模式.這些SQL_MODE中有指定個別特性的,也可組合性的以一個MODE代表好幾個特性的組合,同一個MySQL instance或連線可以有多個SQL_MODE組合,例如”set SQL_MODE=ANSI,NO_ENGINESUBSTITUTE,STRICT_TRANS_TABLES;”.這些MODE可以使資料操作(例如自外部系統匯入資料)更方便,相反的也可能造成使用者的混肴或對MySQL的誤解.主要的指定個別特性的SQL_MODE如下:

ALLOW_INVALID_DATES


  [获取更多。。]
[MySQL FAQ]系列 — 你所不知的table is full那些事
+0 Vote Up -0Vote Down

当我们要写入新数据而发生“The table is full”告警错误时,先不要着急,按照下面的思路来逐步分析即可:
1、查看操作系统以及MySQL的错误日志文件
确认操作系统的文件系统没有报错,并且MySQL的错误日志文件中是否有一些最直观的可见的错误提示。
有可能是数据库文件超过操作系统层的文件大小限制,比如fat/fat32以及低版本的Linux,文件最大不可以大于2G(最大扩展到4G),这就需要转换fat32为NTFS,或升级Linux版本。

2、确认磁盘空间没有满
执行 df -h 查看剩余磁盘空间,如果发现磁盘空间确实已经用完,则尽快删除不需要的文件。

如果通过 du





  [获取更多。。]
MySQL免费技术分享《百万级在线MySQL架构分享》
+0 Vote Up -0Vote Down

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.

随着传统企业去IOE的声音越来越大,也有很多朋友来咨询MySQL的架构设计问题,所以决定做这个分享让决定或是想使用MySQL的朋友能从整体上了解一下如何利用MySQL构建一个百万级在线(或是百万并发的架构)
分享时间:2014年8月14日 20:30  在线技术分享

参加朋友加QQ群:159636401 
分享者介绍
吴炳锡 新媒传信 数据库架构师
Blog: http://mysqlsupport.cn

公司数据库托管平台设计及核心开发者





  [获取更多。。]
MySQL的外鍵例:錯誤1452
+0 Vote Up -0Vote Down
Original post - http://anothermysqldba.blogspot.com/2014/08/mysql-foreign-keys-example-error-1452.html

所以,我今天跑過的情況處理有更新的字段,但用戶無法這樣做,因為相關的外鍵約束的左右。 

這個博客帖子是一個簡單的例子,說明一個外鍵,以及如何,如果你有這樣做的更新。 

首先,讓我們創建一個簡單的表,並用隨機數據填充它。 

CREATE TABLE `table_w_code` ( 
`SOMECode` varchar(50) COLLATE utf8_unicode_ci NOT NULL, 
`NameofCode` varchar(50) COLLATE utf8_unicode_ci NOT NULL, 
PRIMARY KEY (`SOMECode`) 
) ENGINE=InnoDB ; 














  [获取更多。。]
[MySQL FAQ]系列 — 如何安全地关闭MySQL实例
+0 Vote Up -0Vote Down

本文分析了mysqld进程关闭的过程,以及如何安全、缓和地关闭MySQL实例,对这个过程不甚清楚的同学可以参考下。

关闭过程:
  • 1、发起shutdown,发出  SIGTERM信号
  • 2、有必要的话,新建一个关闭线程(shutdown thread)

如果是客户端发起的关闭,则会新建一个专用的关闭线程

如果是直接收到 SIGTERM 信号进行关闭的话,专门负责信号处理的线程就会负责关闭工作,或者新建一个独立的线程负责这个事

当无法创建独立的关闭线程时(例如内存不足),MySQL Server会发出类似下面的告警信息:

Error: Can’t create thread to kill server

  • 3、MySQL Server不再响应新的连接请求

关闭TCP/IP网络监听,关闭Unix Socket等渠道

      [获取更多。。]
    MySQL 5.6 查询优化器新特性的“BUG”
    +0 Vote Up -0Vote Down

    最近碰到一个慢SQL问题,解决过程有点小曲折,和大家分享下。 SQL本身不复杂,表结构、索引也比较简单,不过个别字段存在于多个索引中。

    CREATE TABLE `pre_forum_post` (
      `pid` int(10) unsigned NOT NULL,
      `fid` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `tid` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `first` tinyint(1) NOT NULL DEFAULT '0',
      `author` varchar(40) NOT NULL DEFAULT '',
      `authorid` int(10) unsigned NOT NULL DEFAULT '0',
      `subject` varchar(80) NOT NULL DEFAULT '',
      `dateline` int(10) unsigned NOT NULL DEFAULT '0',
      `message` mediumtext NOT NULL,
      `useip` varchar(15) NOT NULL DEFAULT '',
      `invisible` tinyint(1) NOT NULL DEFAULT '0',
      `anonymous` tinyint(1) NOT NULL DEFAULT '0',
      `usesig` tinyint(1) NOT NULL DEFAULT '0',
      `htmlon` tinyint(1) NOT NULL DEFAULT '0',
      [获取更多。。]
    RDS最佳实践(五)—Mysql大字段的频繁更新导致binlog暴增
    +0 Vote Up -0Vote Down

    背景:RDS Mysql采用的binlog 格式默认为ROW,在Mysql 5.6的版本之前,Mysql每次列的修改(update)都需要记录表中所有列的值。这样就存在一个问题,如果表中包含很多的大字段,表的单行长度就会非常长,这样每次update就会导致大量的 binlog空间生成。针对这个问题,在mysql 5.6中进行了改进,复制支持”row image control” ,只记录修改的列而不是行中所有的列,这对一些包含 BLOGs 字段的数据来说可以节省很大的处理能力,因此此项改进不仅节省了磁盘空间,同时也提升了性能:

    binlog_row_image Before image After image minimal - All columns where a value was specified, and the  [获取更多。。]
    个人PPT分享
    +0 Vote Up -0Vote Down

    个人最近几年内整理过的PPT,都放在百度文库上了,大家可以看看 :)

    M​y​S​Q​L​ ​t​p​c​h​测​试​工​具​简​要​手​册 高​效​L​i​n​u​x​ ​S​A​ P​C​服​务​器​阵​列​卡​管​理​简​易​手​册​ 服​务​器​基​准​测​试 M​y​S​Q​L​数​据​库​设​计​、​优​化  [获取更多。。]
    RDS最佳实践(四)—如何处理Mysql的子查询
    +0 Vote Up -0Vote Down

    早上值班同事在旺旺群里面贴了一条非常复杂的SQL,用户从本地迁移到RDS Mysql出现严重性能下降,同样的数据和表结构下,在本地的数据库上只要不到1s的时间,但是在rds上好几分钟都没响应。

    碰到这类问题需要考虑以下一些因素:

    a.数据库的版本不同(不同的版本优化器策略不一样,或者异构数据库间的迁移:oracle–>mysql,sqlserver–>mysql),导致sql执行计划不同,最后导致sql执行时间不同;

    b.数据库的配置不同(不同的内存配置,参数设置–query cache是否打开),导致sql执行时间不同;

    c.数据库的数据量不同(系统遇到bug,生成了大量的垃圾数据),导致sql执行时间不同;

    根据以上线索,用户是刚刚从线下迁移到RDS的,所以数据量和表结构是相同的;

      [获取更多。。]
    MySQL Fabric 之二-實作及示範
    Employee +0 Vote Up -0Vote Down

    在上一篇文章中”MySQL Fabric -為您的應用系統提供高可用,高擴充的資料庫”中介紹了MySQL Fabric的用途和架構,本文是為有興趣自己動手以MySQL Fabric做資料分片(Data Shar)的人所寫的,希望本文能為您說明所有的安裝和設定的細節,同時透過範例程式使您能了解如何使用MySQL Fabric所管理的MySQL 資料庫Server Farm。

    演示環境及配置


    本範例的MySQL資料庫 Server Farm有6個資料庫及存放Server Farm的設定訊息之Fabric



      [获取更多。。]
    [TIPS]安装数据库提示无法解析机器名处理
    +0 Vote Up -0Vote Down

    作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.

    在做MySQL初始化时,如果机器的名不能进行反解会出现以下错误:

    WARNING: The host 'node2' could not be looked up with resolveip.
    This probably means that your libc libraries are not 100 % compatible
    with this binary MySQL version. The MySQL daemon, mysqld, should work
    normally with the exception that host name resolving will not work.
    This means that you should use IP addresses instead of hostnames
    when specifying MySQL privileges !
    
    #/usr/local/mysql/bin/resolveip node2
    

    /usr/local/mysql/bin/resolveip: Unable to find hostid for ‘node2′: host not found

    处理过程如下

    1. 查看机器的名

      [获取更多。。]
    [MySQL FAQ]系列 — 5.6版本GTID复制异常处理一例
    +0 Vote Up -0Vote Down

    昨天处理了一个MySQL 5.6版本下开启GTID模式复制异常案例,MASTER上的任何操作都无法在SLAVE上应用,SLAVE的RELAY LOG里有记录,但SLAVE的BINLOG却找不到蛛丝马迹。由于开启了GTID,所以排查起来也简单,只需要在SLAVE上把RELAY LOG和BINLOG分别解析成文本文件,再直接搜索MASTER的UUID,就能找到SLAVE上是否应用了MASTER复制过来的事务。 排查过程中,曾经一度怀疑是因为设置了BINLOG-DO或者IGNORE规则,或者设置了REPLICATION-DO或IGNORE规则,甚至是GTID的严重BUG,但都没发现端倪。直到从 SHOW SLAVE STATUS 里发现下面这个信息:

    [yejr@imysql.com]> show slave status\G
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
    ...
    
      [获取更多。。]
    [MySQL优化案例]系列 — 分页优化
    +0 Vote Up -0Vote Down

    通常,我们会采用ORDER BY LIMIT start, offset 的方式来进行分页查询。例如下面这个SQL:

    SELECT * FROM `t1` WHERE ftype=1 ORDER BY id DESC LIMIT 100, 10;
    

    或者像下面这个不带任何条件的分页SQL:

    SELECT * FROM `t1` ORDER BY id DESC LIMIT 100, 10;
    

    一般而言,分页SQL的耗时随着 start 值的增加而急剧增加,我们来看下面这2个不同起始值的分页SQL执行耗时:

    yejr@imysql.com> SELECT * FROM `t1` WHERE ftype=1 ORDER BY id DESC LIMIT 500, 10;
    …
    
    10 rows in set (0.05 sec)
    
    
    yejr@imysql.com> SELECT * FROM `t1` WHERE ftype=6 ORDER BY id DESC LIMIT 935500, 10;
    …
    
    10 rows in set (2.39 sec)
    
      [获取更多。。]
    MySQL的secure_auth錯誤
    +0 Vote Up -0Vote Down
    Original post: http://anothermysqldba.blogspot.com/2014/07/mysql-secureauth-error.html

    我以前處理的secure_auth錯誤時,在此它阻止複製的博客文章 。 

    不過,我想通通過MySQL的客戶端連接時,我會把這個博客帖子更一般的修復。 這是MySQL 5.6之前的服務器。 

    所以,如果你得到一個secure_auth錯誤,當連接到MySQL下面的步驟應該清除此錯誤。 







      [获取更多。。]
    TIPS:MySQL 改库名操作
    +0 Vote Up -0Vote Down

    作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.

    MySQL在5.1引入了一个rename database操作,但在MySQL5.1.23后又不支持这个命令。可以说是一个实验性的功能,没有在生产中支持过(mysql-5.1 release在mysql-5.1.30),那么生产中我们有时为了追求完美需要改一下库名。怎么操作呢?
    这里提供一个变通的方法。
    1. 创建出新库名:

    mysql>create database db_v2;
    
  • 生成rename语句,从olddb里迁移,我这里olddb里sbtest;
  • mysql>select concat("rename table ",table_schema,".",table_name," to db_v2.",table_name,";") into outfile '/tmp/rename_to_db_v2.sql' from information_schema.tables where table_schema='sbtest';
    


      [获取更多。。]
    MySQL中,Ubuntu的:: mysqld不能有訪問權限
    +0 Vote Up -0Vote Down
    Original post: http://anothermysqldba.blogspot.com/2014/07/mysql-ubuntu-mysqld-does-not-have.html
    所以今天我正好需要從備份中恢復一個MySQL數據庫,所以我可以恢復一些表。 雖然我離開了他的生產數據庫通過端口3306上運行,我設置的備份通過端​​口3307。 

    然而,當我試圖通過在mysql_restore目錄中的3307端口上啟動另一個版本,但我遇到了一些錯誤.... 


    /usr/bin/mysqld_safe --defaults-file=/etc/my_3307.cnf 

    [Warning] Can't create test file /var/lib/mysql_restore/localhost.lower-test 
    [Warning] Can't create test file /var/lib/mysql_restore/localhost.lower-test 
    Can't find file: './mysql/plugin.frm' (errno:









      [获取更多。。]
    MySQL Fabric - 為您的應用系統提供高可用、高擴充性的資料庫
    Employee +0 Vote Up -0Vote Down
    MySQL Fabric - 為您的應用系統提供高可用、高擴充性的資料庫

    Oracle在今年5月初推出了一套為各方寄以厚望的在MySQL產品 – MySQL Fabric,單從字面上似乎不太能看出它是啥咪碗糕,但是由名稱上還是有跡可循的,”Fabric”是"織"或"織品",這意味著它是用來"織"起"一片”MySQL資料庫。MySQL Fabric是一套資料庫伺服器場(Database Server Farm)的架構管理系統。
    MySQL Fabric是什麼? MySQL Fabric 能 『組織』多個MySQL資料庫,使應用系統能將大於幾TB的表分散到多個資料庫 – 做Data


      [获取更多。。]
    mongodb性能基准测试工具ycsb
    +0 Vote Up -0Vote Down

    mongodb性能基准测试工具ycsb

    熟悉mysql的同学一定都听说过tpcc-mysql这个mysql性能测试的工具,与其类似,nosql界也有一个性能基准测试工具ycsb。Yahoo! Cloud Serving Benchmark。

    ycsb需要java环境,需要maven。

    mvn clean package的时候可能会报错…在pom.xml中把不需要的测试对象删除即可,如infinispan,cassandra,hbase之类的。

    在workloads目录中,ycsb提供了6种workload,比如50%读50%写,95%读5%写等等,每次只能测试某一种workload。

    测试的过程分为load 与 run 二个过程,load即为把测试数据写入db,run即为 run workload。

    ycsb支持的参数并不多,这样很好。

    ./bin/ycsb load mongodb -s -P workloads/workloadH -threads 100 >out

    ./bin/ycsb run mongodb -s -P workloads/workloadH -threads 200 >out

      [获取更多。。]
    [MySQL FAQ]系列 — 大数据量时如何部署MySQL Replication从库
    +0 Vote Up -0Vote Down

    我们在部署MySQL Replication从库时,通常是一开始就做好一个从库,然后随着业务的变化,数据也逐渐复制到从服务器。

    但是,如果我们想对一个已经上线较久,有这大数据量的数据库部署复制从库时,应该怎么处理比较合适呢?

    本文以我近期所做Zabbix数据库部署MySQL Replication从库为例,向大家呈现一种新的复制部署方式。由于Zabbix历史数据非常多,在转TokuDB之前的InnoDB引擎时,已经接近700G,转成TokuDB后,还有300多G,而且主要集中在trends_uint、history_uint等几个大表上。做一次全量备份后再恢复耗时太久,怕对主库写入影响太大,因此才有了本文的分享。

      [获取更多。。]
    Antelope 和Barracuda区别
    +0 Vote Up -0Vote Down

    作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.

    Antelope是innodb-base的文件格式, Barracude是innodb-plugin后引入的文件格式,同时Barracude也支持Antelope文件格式。两者区别在于:

    文件格式 支持行格式 特性 Antelope

    (Innodb-base) ROW_FORMAT=COMPACT

    ROW_FORMAT=REDUNDANT

    Compact和redumdant的区别在就是在于首部的存存内容区别。

    compact的存储格式为首部为一个非NULL的变长字段长度列表

    redundant的存储格式为首部是一个字段长度偏移列表(每个字段占用的字节长度及其相应的位移)。

      [获取更多。。]
    [MySQL优化案例]系列 — RAND()优化
    +0 Vote Up -0Vote Down

    众所周知,在MySQL中,如果直接 ORDER BY RAND() 的话,效率非常差,因为会多次执行。事实上,如果等值查询也是用 RAND() 的话也如此,我们先来看看下面这几个SQL的不同执行计划和执行耗时。
    首先,看下建表DDL,这是一个没有显式自增主键的InnoDB表:

    [yejr@imysql]> show create table t_innodb_random\G
    *************************** 1. row ***************************
    Table: t_innodb_random
    Create Table: CREATE TABLE `t_innodb_random` (
    `id` int(10) unsigned NOT NULL,
    `user` varchar(64) NOT NULL DEFAULT '',
    KEY `idx_id` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1
    

    往这个表里灌入一些测试数据,至少10万以上, id 字段也是乱序的。

    [yejr@imysql]> select count(*) from t_innodb_random\G
    *************************** 1. row

      [获取更多。。]
    Percona Thread Pool性能基准测试
    +0 Vote Up -0Vote Down

    MySQL从5.5.16开始,在MySQL的商业化版本中将Thread Pool作为plugin提供官方功能支持。后来MariaDB也实现了这一功能,Percona也跟进实现了。从这几天对Percona 5.6.16版本做了下thread pool对比测试,试图找到较为合适的配置参数。

    下面是几个测试模式对比:

    模式 配置参数 Percona 5.6.16-nothp 未开启 thread pool 模式 CASE0-thp(128)-oversub(16)-max(2048) thread_handling = pool-of-threads
    thread_pool_size = 128
    thread_pool_oversubscribe = 16
    thread_pool_max_threads = 2048 CASE1-thp(default) thread_handling = pool-of-threads
    其他默认设置 CASE2-thp(default)-oversub(10) thread_handling = pool-of-threads
    thread_pool_oversubscribe = 10
    其他默认设置 CASE3-thp(default)-oversub(10)-max(10000) thread_handling = pool-of-threads







      [获取更多。。]
    Mongo php如何证明只读查询发生在secondary server
    +0 Vote Up -0Vote Down

    Mongo php如何证明只读查询发生在secondary server

    虽然mongo官方并不推荐在replica set的secondary server上进行查询操作,但是作为一个mysql的老用户,表示一定要这样用。

    继续昨天1主2从1 arbiter的架构。
    从ubuntu:27020;rs0;
    主ubuntu:27021;rs0;
    从ubuntu:27022;rs0;
    A ubuntu:27023;rs0;

    php脚本在建立连接的时候,应该连接哪个mongo服务器呢?

    答案是主从A都随意。 其实应该是把这四台都写上才对。

    当然在这四台机器前面再加一个proxy就更好了。

    接下来的问题,就是如何让find()等只读操作route到从服务器了,很容易想到slaveOk()吧?

    http://kr1.php.net/manual/en/mongodb.setslaveokay.php

    可惜的是, 这个method 被DEPRECATED 了。
    替代的办法就是:






      [获取更多。。]
    Mongodb Replica Set Deployment
    +0 Vote Up -0Vote Down

    Mongodb Replica Set Deployment

    在一台虚拟机里面安装了三个mongod实例,一主二从,另外还安装了一个arbiter。

    创建数据总目录
    root@ubuntu:/# mkdir /data/mongodb -p
    创建日志目录
    root@ubuntu:/# mkdir /data/mongodb_log -p
     
    创建三个mongod实例的数据目录
    root@ubuntu:/# cd /data/mongodb
    root@ubuntu:/data/mongodb# mkdir rs0-0
    root@ubuntu:/data/mongodb# mkdir rs0-1
    root@ubuntu:/data/mongodb# mkdir rs0-2
     
     
     
    启动三个mongod.
    replSet名为 rs0
     
    mongod --port 27020 --dbpath /data/mongodb/rs0-0 --logpath /data/mongodb_log/rs0-0.log --replSet rs0 --logappend &
    mongod --port 27021 --dbpath /data/mongodb/rs0-1 --logpath /data/mongodb_log/rs0-1.log --replSet rs0 --logappend &
    mongod --port 27022 --dbpath /data/mongodb/rs0-2 --logpath /data/mongodb_log/rs0-2.log --replSet rs0 --logappend &
     
     
     
      [获取更多。。]
    Comment on mysql5.6 alter table 与 Waiting for table metadata lock by yuanyuan
    +0 Vote Up -0Vote Down

    SELECT sleep(100) FROM t
    这个是每行记录都会sleep 100s,所以整个的执行时间 100*num(记录行数)

    MySQL的表錯誤1064
    +0 Vote Up -0Vote Down
    Original post : http://anothermysqldba.blogspot.com/2014/06/mysql-table-error-1064.html

    所以,我碰到一個奇怪的局面今天就來了。 

    我有一個使用PHP $ _COOKIE ['PHPSESSID']的值創建內存表的系統。 

    一旦有些工作已經完成它,然後刪除表。 

    兩個示例表下面是我的榜樣。 


    @@VERSION: 5.6.19-log 
    CREATE TABLE `f7a7a8d3a7ba75b5eb1712864c9b27eb` ( 
    -> `id` int(11) NOT NULL AUTO_INCREMENT, 
    -> PRIMARY KEY (`id`) 
    -> ) ENGINE=MEMORY; 

    CREATE TABLE `8865e52c7e1bea515e7156f240729275` ( 
    -> `id` int(11) NOT NULL AUTO_INCREMENT, 
    -> PRIMARY KEY (`id`) 
    -> )



















      [获取更多。。]
    迁移Zabbix数据库到TokuDB
    +0 Vote Up -0Vote Down

    背景介绍

    线上的Zabbix数据库有几个大表数据量疯狂增长,单表已经超过500G,而且在早期也没做成分区表,后期维护非常麻烦。比如,想删除过期的历史数据,在原先的模式下,history、history_uint等几个大表是用 (itemid, clock) 两个字段做的联合主键,只用 clock 字段检索效率非常差。

    TokuDB 是一个高性能、支持事务处理的 MySQL 和 MariaDB 的存储引擎。TokuDB 的主要特点是高压缩比,高 INSERT 性能,支持大多数在线修改索引、添加字段,特别适合像 Zabbix 这种高 INSERT,少 UPDATE 的应用场景。

    迁移准备

    欲使用 TokuDB 引擎,服务层可以选择和 MariaDB ,也可以选择 Percona ,鉴于我以往使用 Percona 的较多,因此本次也选择使用 Percona 版本集成 TokuDB 引擎。

      [获取更多。。]
    表示 进入内容 130578 下一步 30 较早的记录

    Planet MySQL © 1995, 2014, Oracle Corporation and/or its affiliates   Legal Policies | Your Privacy Rights | Terms of Use

    Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.