2016年10月7日
摘要: INNODB I/O相关配置 记录日志为顺序I/O,刷新日志到数据文件为随机操作。顺序操作性能快于随机IO. innodb_log_file_size innodb_log_files_in_group 事务日志总大小: innodb_log_files_in_group * innodb_log_file_size ,日志为循环写入。 innodb_log_buffer_size... 阅读全文
posted @ 2016-10-07 17:14 自由港 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 使用独立表空间后,系统表空间存储什么内容呢? 1.innodb 数据字典信息 和存储引擎相关。 frm 是服务器的数据字典和存储引擎无关。 2. undo 回滚段。 可以单独存储。 INNODB存储引擎特性 1.事务性存储引擎。 2.支持ACID特性 redo log 和 undo log redo log 实现事务的持久性。 包括两部分: 1.内存... 阅读全文
posted @ 2016-10-07 16:50 自由港 阅读(815) 评论(0) 推荐(0) 编辑
摘要: innodb 是在mysql 5.5.8 及之后的版本中成为mysql的默认存储引擎。之前都使用myisam。 innodb 是事务型的存储引擎 支持ACID事务,适用于小事务。 1.表空间类型 使用表空间进行数据存储。 通过参数 innodb_file_per_table 决定 on :独立表空间 :tablename.IBD FRM文件为表结构二进制文件 ... 阅读全文
posted @ 2016-10-07 16:00 自由港 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 1.客户端 连接处理,授权和安全等。 2.mysql服务层。 在这一层实现了与存储引擎无关的特性。 select 语句:如何从文件中查询需要的数据,这个具体实现方式是有下一层的存储引擎层来实现。 3.存储引擎层。 常见的有: innodb myisam csv memory等。 存储引擎是针对于表的不是针对库的,一个库中不同表可以使用不同的存储引擎... 阅读全文
posted @ 2016-10-07 15:38 自由港 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 1.大表的数据修改最好分批处理。 1000万行的记录表中删除更新100万行记录,一次只删除或更新5000行数据。每批处理完成后,暂停几秒中,进行同步处理。 2.如何修改大表的表结构。 对表的列的字段类型进行修改,改变字段宽度时还是会锁表,无法解决主从数据库延迟的问题。 解决办法: 1.创建一个新表。 2.在老表上创建触发器同步老表数据到新表。 3.同步老表数据到新表。... 阅读全文
posted @ 2016-10-07 15:27 自由港 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 根据各阶段消耗的时间,确定如何进行优化。 1.使用profile set profiling=1; 启动profile,这是一个session的配置。 执行需要优化的查询。 使用命令: show profiles 查看每一个查询所消耗的总时间信息。 show profile for query N; 查询的每个阶段所消耗的时间 ,N 为查询出来的queryID。 ... 阅读全文
posted @ 2016-10-07 14:50 自由港 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 需要搞清楚查询为什么会慢,就要搞清楚mysql处理查询请求的过程: 1.客户端发送SQL请求给服务器 2.服务器检查是否可以在查询缓存中命中该SQL 查询缓存对SQL性能的影响。 1.需要对缓存加锁。 2.表更新需要对缓存刷新。 对于读写频繁的系统使用查询缓存可能会降低查询的处理效率,在这种情况下不要使用查询缓存。 query_cache_type :设置查询是否可... 阅读全文
posted @ 2016-10-07 14:05 自由港 阅读(1619) 评论(0) 推荐(0) 编辑
摘要: 1.通过用户反馈获取存在性能问题的SQL. 2.通过慢查日志获取存在性能的SQL. 启动慢查日志 slow_query_log=on set global slow_query_log=on; slow_query_log_file 指定慢查日志存储路径及文件 默认情况保存在mysql的数据目录中,最好日志存储和数据存储分开。 long_query_time ... 阅读全文
posted @ 2016-10-07 13:57 自由港 阅读(578) 评论(0) 推荐(0) 编辑