JAVA天下
小小博客,包罗万有.
随笔 - 16, 文章 - 5, 评论 - 11, 引用 - 0
数据加载中……
数据库插入速度和读取速度的调整记录
(1)提高数据库插入性能中心思想:
尽量将数据一次性写入到Data File和减少数据库的checkpoint 操作。这次修改了下面四个配置项:
1)将
innodb_flush_log_at_trx_commit 配置设定为0;按过往经验设定为0,插入速度会有很大提高。
0: Write the log buffer to the log file and flush the log file every second, but do nothing at transaction commit.
1:the log buffer is written out to the log file at each transaction commit and the flush to disk operation is performed on the log file
2:the log buffer is written out to the file at each commit, but the flush to disk operation is not performed on it
2)将
innodb_autoextend_increment 配置由于默认8M 调整到 128M
此配置项作用主要是当tablespace 空间已经满了后,需要MySQL系统需要自动扩展多少空间,
每次
tablespace 扩展都会让各个SQL 处于等待状态。
增加自动扩展Size可以减少tablespac
e自动扩展次数。
3)将
innodb_log_buffer_size
配置由于默认1M 调整到 16M
此配置项作用设定innodb 数据库引擎写日志缓存区;
将此缓存段增大可以减少数据库写数据文件次数。
4)将
innodb_log_file_size
配置由于默认 8M 调整到 128M
此配置项作用设定innodb 数据库引擎UNDO日志的大小;
从而减少数据库checkpoint操作。
经过以上调整,
系统插入速度由于原来10分钟几万条提升至1秒1W左右;注:
以上参数调整,需要根据不同机器来进行实际调整。特别是
innodb_flush_log_at_trx_
commit、
innodb_log_buffer_size
和
innodb_log_file_size 需要谨慎调整;因为涉及MySQL本身的容灾处理。
(2)提升数据库读取速度,
重数据库层面上读取速度提升主要由于几点:简化SQL、
加索引和分区; 经过检查程序SQL已经是最简单,查询条件上已经增加索引。
我们只能用武器:表分区。
数据库 MySQL分区前准备:在MySQL中,
表空间就是存储数据和索引的数据文件。
将S11数据库由于同享tablespace 修改为支持多个tablespace;
将wb_user_info_sina 和 wb_user_info_tx 两个表修改为各自独立表空间;(Sina:1700W数据,2.
6G 大数据文件,Tencent 1400W,2.3G大数据文件);
分区操作:
将现有的主键和索引先删除
重现建立id,uid 的联合主键
再以 uid 为键值进行分区。这时候到/var/data/mysql 查看数据文件,
可以看到两个大表各自独立表空间已经分割成若干个较少独立分区空
间。(这时候若以uid 为检索条件进行查询,并不提升速度;
因为键值只是安排数据存储的分区并不会建立分区索引。
我非常郁闷这点比Oracle 差得不是一点半点。)
再以 uid 字段上进行建立索引。再次到/var/data/mysql 文件夹查看数据文件,非常郁闷地发现各个分区Size竟然大了。
MySQL还是老样子将索引与数据存储在同一个tablespa
ce里面。若能index 与 数据分离能够更加好管理。
经过以上调整,暂时没能体现出系统读取速度提升;基本都是在 2~3秒完成5K数据更新。
MK-TIANYI
posted on 2012-05-23 22:19
天一
阅读(1131)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
Powered by:
BlogJava
Copyright © 天一
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2012年5月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
Java(2)
(rss)
JavaScript(4)
(rss)
Oracle(2)
(rss)
PHP
(rss)
其他(6)
(rss)
随笔档案
2012年5月 (1)
2011年3月 (1)
2010年11月 (1)
2009年9月 (1)
2009年7月 (1)
2008年11月 (1)
2008年5月 (1)
2007年10月 (2)
2007年3月 (1)
2006年8月 (1)
2006年7月 (2)
2006年4月 (2)
相册
Mark
收藏夹
Java (3)
(rss)
JavaScript (2)
(rss)
Prototype Web
最新随笔
1. 数据库插入速度和读取速度的调整记录
2. 网络攻击小结【DDos】
3. 计划 兰卡威-吉隆坡之旅
4. 【转】SYN 攻击讲解
5. JavaScript 写 Log 类的具体实现
6. 数据库设计和数据库重构--小小心得
7. JavaScript 使用类的时候,一个很奇怪的问题
8. JavaScript Connect DB
9. Java Script 的一些文件操作函数
10. 关于MySQL奇怪的问题
搜索
最新评论
1. re: 数据库设计和数据库重构--小小心得
评论内容较长,点击标题查看
--Edwin.Koo
2. re: JavaScript 写 Log 类的具体实现
用IE8或FF的话,用console对象吧
--HiMagic!
3. re: 转[如何学习编程?JAVA该如何学习?]
恩不错.............得多做啊
--jms
4. re: 数据库设计和数据库重构--小小心得
评论内容较长,点击标题查看
--天一
5. re: 数据库设计和数据库重构--小小心得
啥年代了,OO都来不及,还数据库,设计好OO模型,数据库只是存储工具而已。
--天好冷
阅读排行榜
1. 数据库设计和数据库重构--小小心得(3124)
2. 网络攻击小结【DDos】(2226)
3. 数据库的一些技术指标(2026)
4. 【转】SYN 攻击讲解(1803)
5. JavaScript Connect DB (1537)
评论排行榜
1. JavaScript 使用类的时候,一个很奇怪的问题(4)
2. 数据库设计和数据库重构--小小心得(3)
3. JavaScript Connect DB (2)
4. JavaScript 写 Log 类的具体实现(1)
5. 转[如何学习编程?JAVA该如何学习?](1)