MySQL优化
文章平均质量分 69
aeolus_pu
这个作者很懒,什么都没留下…
展开
-
mysql binlog日志优化及思路
在数据库安装完毕,对于binlog日志参数设置,有一些参数的调整,来满足业务需求或使性能最大化。Mysql日志主要对io性能产生影响,本次主要关注binlog 日志。查一下二进制日志相关的参数 mysql> show variables like '%binlog%';+--------------------------------+---------------------原创 2012-08-03 13:31:35 · 1756 阅读 · 0 评论 -
mysql delete 千万数据操作
在mysql中,delete掉上千万条数据时,会造成表被锁,甚至给mysql服务器带来很大压力。这是目前mysql无法避免的一个问题,可以说是在处理大数据量方面的不足。而在业务中,又无法避免这种delete需求,因此,借用oracle的思想,写存储过程,分而治之,批量删掉。delimiter $$ create procedure sp_del_test()begin decl原创 2013-06-08 11:19:27 · 6632 阅读 · 0 评论 -
数据量增加导致mysql执行计划改变
数据量的增加导致了mysql执行计划的改变,那么mysql的cost是怎么计算的呢?cost=io_cost+cpu_costcpu_cost位于mysql上层,处理返回的记录所花开销,io_cost存储引擎层,读取也没的IO开销。最直接的方式last_query_cost记录sql的cost。查看last_query_cost可以初步判断sql的cost,明白mysql优化器执行的依据。原创 2013-07-18 10:32:42 · 1861 阅读 · 0 评论 -
mysql 参数optimizer_switch
mysql 5.1中开始引入optimizer_switch, 控制mysql优化器行为。他有一些结果集,通过on和off控制开启和关闭优化器行为。使用有效期全局和会话两个级别,在5.5中optimizer_swtich 可取结果如下,不同mysql版本可取结果不同。5.1和5.6参考官方文档。mysql> select @@optimizer_switch;+--------------原创 2013-06-18 16:15:50 · 6688 阅读 · 0 评论 -
糟糕的sql语句
同事传过来一个sql,说此sql运行期间大量占用服务器磁盘空间,大约将近10个G的空间,效率超慢 SELECT MIN(order_id), MAX(order_id) FROM (select *,date(order_creation_date) create_date from orders where (1 = 1) ) AS t1 1 又是一个糟糕的sql,s原创 2013-05-28 10:55:48 · 1030 阅读 · 0 评论 -
mysql 5.6 新功能一览
主要新功能可以归结为以下几个方面:1. Query Performance ICP (Index Condition Pushdown) MRR (Multi Range Read) BKA (Batch Key Access) New explain output Innodb Persist原创 2012-08-18 11:11:38 · 1609 阅读 · 2 评论 -
mysql show profiles 使用分析sql 性能
Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。查看一下我的数据库版本mysql> Select version();+---------------------+| version() |+---------------------+| 5.0.82-community-nt |+--------原创 2012-08-01 14:55:58 · 41212 阅读 · 4 评论 -
mysql not in 或in 优化
在mysql 中,not in 或in 优化思路, 利用left join 来优化,类似如下的查询方式 select id from a where id in (select id from b ) 如这样的查询方式,在大数据量的情况下,查询很慢,需要改写优化sql,那么就可以用left join来优化改写如下格式:原创 2012-07-30 09:51:44 · 22245 阅读 · 0 评论 -
myisam 主要参数设置
Key_buffer_size: 这个参数主要用来设置整个mysqlkey cache大小。一般来说,如果运行在32位平台,一般不超过2G。如果是运行在64位平台则不做考虑此限制,但最好也不超过4G。只能myisam引擎的表起作用,用来缓存索引数据,决定索引处理的速度,加快读索引速度。 如何判断一个keybuffer 设置的好坏,可以通过下面的方式Key_reads:代表磁盘原创 2012-08-14 10:44:23 · 1280 阅读 · 0 评论 -
mysql 如何打开和关闭表
MySQL 如何统计打开的表数量 执行命令 mysqladmin status 时,可以看到类似如下结果: Uptime: 426 Running threads: 1 Questions: 11082 Reloads: 1 Open tables: 12 如果只有6个数据表时,Open tables 的值确实12,这可能会转载 2012-08-14 10:38:52 · 10463 阅读 · 0 评论 -
mysql中headler_read计数器理解
mysqlheadler_read计数器,这些计数器对理解调优有一定的帮助 首先7个计数器,我们应该分为两部分:1)对索引读的计数器:前面的5个都是对索引读情况的计数器, Handler_read_first:是指读索引的第一项(的次数); Handler_read_key:是指读索引的某一项(的次数); Handler_read_next:转载 2017-03-21 16:34:16 · 1068 阅读 · 0 评论