免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

MySQL5.6版本升级之路--(获奖名单已公布-2013-7-25) [复制链接]

论坛徽章:
8
CU大牛徽章
日期:2013-09-18 15:20:48CU大牛徽章
日期:2013-09-18 15:20:58CU大牛徽章
日期:2013-09-18 15:21:06CU大牛徽章
日期:2013-09-18 15:21:12CU大牛徽章
日期:2013-09-18 15:21:17天秤座
日期:2013-10-30 14:01:03摩羯座
日期:2013-11-29 18:02:31luobin
日期:2016-06-17 17:46:36
61 [报告]
发表于 2013-07-10 11:25 |只看该作者
@liuxuejin
谢谢分享。

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-12 06:20:00
62 [报告]
发表于 2013-07-10 15:33 |只看该作者
jieforest 发表于 2013-07-05 15:12
再补充一点,恐怕下一步公司的MySQL服务器会替换为MariaDB。至于Percona,但它没有Windows Server的版本,以 ...


有道理

论坛徽章:
0
63 [报告]
发表于 2013-07-10 21:20 |只看该作者
MySQL 5.6 主要在查询性能的优化、InnoDB改进以支持高吞吐量的事务、NoSQL风格的API、分区功能的改进、数据复制的改进,增加 PERFORMANCE_SCHEMA 库以获得数据库性能信息等。

1. 查询性能优化:

下推索引条件:具体实现方法不详,意思是将优化 WHERE 语句改进索引条件的处理性能

Multi-Range Read:通过随机数据访问来提升 SSD 上的数据读取速度

优化文件排序:对一些组合了 ORDER BY non_indexed_column 和 LIMIT x 的SQL语句,该特性将大大加速此类语句的执行速度。

2. InnoDB 的改进

MySQL 5.6 完全集成 InnoDB 作为默认的存储引擎。同时 5.6 版本在使用 InnoDB 上的很多细节做了改进,详情请看这里。

3. 提供 NoSQL 风格的 API

此举完全是寨 Percona Server 的做法?该功能主要适用于将 MySQL 来作为 NoSQL 使用,而 MySQL 使用的是 memcached 兼容的 API。通过该接口程序访问数据可直达 InnoDB 存储引擎,而无需通过 MySQL 对 SQL 的转换过程,大大提升了数据访问的性能。

4. 分区的改进

显式分区数据查询,例如:

SELECT * FROM employees PARTITION (p0, p2);
DELETE FROM employees PARTITION (p0, p1);
UPDATE employees PARTITION (p0) SET store_id = 2 WHERE fname = 'Jill';
SELECT e.id, s.city FROM employees AS e JOIN stores PARTITION (p1) AS s ...;
分区数据的导入导出,此功能用于快速的将某个表迁移到分区上:

ALTER TABLE e EXCHANGE PARTITION p0 WITH TABLE e2;
5. 复制功能的改进

优化基于行的数据复制、多线程的数据复制、提升数据复制的一致性和可用性。

6. 大大增强 PERFORMANCE_SCHEMA 数据库

降低了数据库开销、表IO的信息汇集和监控、表锁信息汇集和监控、会话和用户级别的监控、全局性能信息汇总

论坛徽章:
0
64 [报告]
发表于 2013-07-10 21:36 |只看该作者
本帖最后由 buptdream 于 2013-07-10 21:37 编辑

sysbench参数为:
table-size=1000000 --num-threads=1  --oltp-read-only=on --init-rng=on --max-requests=0 --max-time=300 run
然后出来的比较图为



    这个是单线程下的结果,可以看到myql 5.5比5.6和即使5.6关闭掉perfomacne schmea功能都要快点。 
而当64个线程的时候,结果图为: 

   可以看到,mysql 5.5居然依然优于5.6一点

论坛徽章:
0
65 [报告]
发表于 2013-07-10 21:51 |只看该作者
本帖最后由 buptdream 于 2013-07-10 21:52 编辑

安装依赖:

# yum -y install wget gcc-c++ cmake make bison ncurses-devel perl unzip

添加MySQL系统用户

# groupadd mysql
# useradd -r -g mysql mysql

提前建立好相关目录

# mkdir /data/logs/mysql
# mkdir /data/mysql

下载MySQL源代码:


配置
# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/server/mysql-5.6.12 \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_USER=mysql \
-DDEFAULT_CHARSET=utf8 \
-DEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLE_DOWNLOADS=1

配置释义:

-DCMAKE_INSTALL_PREFIX=/usr/local/server/mysql-5.6.12 设置安装目录
-DMYSQL_DATADIR=/data/mysql 设置数据库存放目录
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 设置UNIX socket 目录
-DMYSQL_USER=mysql 设置运行用户
-DDEFAULT_CHARSET=utf8 设置默认字符集,默认latin1
-DEFAULT_COLLATION=utf8_general_ci 设置默认校对规则,默认latin1_general_ci
-DWITH_INNOBASE_STORAGE_ENGINE=1 添加InnoDB引擎支持
-DENABLE_DOWNLOADS=1 自动下载可选文件,比如自动下载谷歌的测试包
-DMYSQL_TCP_PORT=3306 设置服务器监听端口,默认3306
-DSYSCONFDIR=/data/etc 设置my.cnf所在目录,默认为安装目录


执行过程中会出现:

CMake Error: Problem with tar_extract_all(): Invalid argument
CMake Error: Problem extracting tar: /usr/local/src/mysql-5.6.12/source_downloads/gmock-1.6.0.zip
解决方法:
cd mysql目录下面会发现有一个source_downloads目录,需要解压unzip gmock-1.6.0.zip,然后再重新执行上述配置过程。当然你也可以去掉-DENABLE_DOWNLOADS=1这个选项,不编译谷歌的测试包也没有什么问题,但是之前的某些版本会出现无法编译的问题

论坛徽章:
0
66 [报告]
发表于 2013-07-10 22:03 |只看该作者
mysql 5.6的很多特性正在学习中

论坛徽章:
0
67 [报告]
发表于 2013-07-11 23:06 |只看该作者
还是5.5的飘过

论坛徽章:
0
68 [报告]
发表于 2013-07-12 13:33 |只看该作者
今天测试了一下,mysql 5.6对子查询的优化改进了不少,看来oracle把很多理念开始加入进去

论坛徽章:
0
69 [报告]
发表于 2013-07-12 13:34 |只看该作者
为了数据库的稳定性,要稍微等等,等5.6成熟之后再在生产环境中使用,目前的很多特性,我们也在测试当中

论坛徽章:
39
白银圣斗士
日期:2015-11-24 10:40:40酉鸡
日期:2015-03-20 14:15:44寅虎
日期:2015-03-20 14:13:59午马
日期:2015-03-20 14:13:16白羊座
日期:2015-03-20 14:12:54金牛座
日期:2015-03-20 14:12:09双子座
日期:2015-03-20 14:11:57巨蟹座
日期:2015-03-20 14:11:44狮子座
日期:2015-03-20 14:11:29亥猪
日期:2015-03-20 14:16:24戌狗
日期:2015-03-20 14:16:40申猴
日期:2015-03-20 14:17:05
70 [报告]
发表于 2013-07-16 12:38 |只看该作者
1、说说您所遇到的问题
   备份的时候导入导出太慢了,特别是超过1G的,受不了了
2、遇到这些问题你所采用的办法和方案
   居然没发现有-e参数,用-e配合--max_allowed_packet,--net_buffer_length,效率提升不是一点点,简直是天壤之别

要是InnoDB每个库都能单独分文件存储就更好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP