比来研发的项目对DB依附比较重,梳理了这段时光应用MySQL碰到的8个比较具有代表性的问题,谜底也比较偏本身的开辟实践,没有DBA专业和深刻,有进出的请使劲拍砖!…
- MySQL读写机能是若干,有哪些机能相干的设备参数?
- MySQL负载高时,若何找到是由哪些SQL引起的?
- 若何针对具体的SQL做优化?
- SQL层面已难以优化,请求量持续增大年夜时的应对策略?
- MySQL若何做主大年夜数据同步?
- 若何防止DB误操作和做好容灾?
- 钙揭捉?择MySQL哪种存储引擎,Innodb具有什么特点?
- MySQL内部构造有哪些层次?
1.MySQL读写机能是若干,有哪些机能相干的重要参数?
这里做了几个简单压测实验
机械:8核CPU,8G内存
表构造(尽量模仿营业):12个字段(1个bigint(20)为自增primary key,5个int(11),5个varchar(512),1个timestamp),InnoDB存储引擎。
MySQLdump -u 用户名 -p 数据库名 [表名] > 导出的文件名
实验1(写):insert => 6000/s
分析:CPU跑了50%,这时磁盘为次序写,故机能较高
前提:连接数100,10w笔记录,每次update单笔记录的4个字段(2个int(11),2个varchar(512))
分析:CPU跑2%,瓶颈明显在IO的随机写
slow_query_log_file:慢萌芽日记存放路径
实验3(读):select(where前提射中索引) => 5000/s
前提:连接数100,10w笔记录,每次select单笔记录的4个字段(2个int(11),2个varchar(512))
实验4(读):select(where前提没射中索引) => 60/s
前提:连接数100,10w笔记录,每次select单笔记录的4个字段(2个int(11),2个varchar(512))
几个重要的设备参数,可根据实际的机械和营业特点调剂
max_connecttions:最大年夜连接数
table_cache:缓存打开表的数量
key_buffer_size:索引缓存大年夜小
5.MySQL若何做主大年夜数据同步?
query_cache_size:萌芽缓存大年夜小
sort_buffer_size:排序缓存大年夜小(会将排序完的数据缓存起来)
MySQL5.5之后及CDB的默认引擎。
- 支撑行锁:并发机能好
- 支撑事务:故InnoDB称为事务性存储引擎,支撑ACID,供给了具有提交、回滚和崩溃恢复才能的事务安然
- 支撑外键:当前独一支撑外键的引擎
read_buffer_size:次序读缓存大年夜小
read_rnd_buffer_size:某种特定次序读缓存大年夜小(如order by子句的萌芽)
应用show engines可查看当前MySQL支撑的存储引擎详情
PS:查看设备办法:show variables like '%max_connecttions%';
2.MySQL负载高时,若何找到是由哪些SQL引起的?
办法:慢萌芽日记分析(MySQLdumpslow)
慢萌芽日记例子,可看到每个慢萌芽SQL低砟瓯:
- # User@Host: edu_online[edu_online] @ [10.139.10.167]
- # Query_time: 1.958000 Lock_time: 0.000021 Rows_sent: 254786 Rows_examined: 254786
- SET timestamp=1410883292;
- select * from t_online_group_records;
应用MySQLdumpslow进行慢萌芽日记分析
营业侧应做到的几点:
日记显示该萌芽用了1.958秒,返回254786行记录,一共遍历了254786行记录。及具体的时光戳和SQL语句。
MySQLdumpslow -s t -t 5 slow_log_20140819.txt
输出萌芽耗时最多的Top5条SQL语句
-s:排序办法,t表示按时光 (此外,c为按次数,r为按返回记录数等)
-t:去Top若干条,-t 5表示取前5条
履行完分析结不雅如下:
- Count: 1076100 Time=0.09s (99065s) Lock=0.00s (76s) Rows=408.9 (440058825), edu_online[edu_online]@28hosts
- select * from t_online_group_records where UNIX_TIMESTAMP(gre_updatetime) > N
- Count: 1076099 Time=0.05s (52340s) Lock=0.00s (91s) Rows=62.6 (67324907), edu_online[edu_online]@28hosts
- select * from t_online_course where UNIX_TIMESTAMP(c_updatetime) > N
推荐阅读
对于具有大年夜型复杂IT情况的CIO来说,云优先策略的风险和收益是一个难题。专家建议要应用明显的指标。TCE Strategy首席履行官、技巧和收集安然策略师Bryce Austin表示:“在这种情>>>详细阅读
地址:http://www.17bianji.com/lsqh/37266.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示