cnlnzz01 发表于 2015-12-07 18:15

cnlnzz01 发表于 2015-12-07 18:21

demilich 发表于 2015-12-09 14:07

好书,占楼先 ...

王楠w_n 发表于 2015-12-09 14:11

这回复。。。。。回复 3# demilich


   

seesea2517 发表于 2015-12-09 15:22

1. 如果是你,你怎么处理慢查询引起的问题,并且在以后避免这种情况发生?
我们一般是这样处理的:根据show出来的查询语句内容以及用户名去找到相关的查询发起者,询问使用目的以及是否可以杀掉,一般来说同事都会理解同意杀掉的,不同意那就约定一下再等多久非杀不可;并请发起者优化查询,有需要找到开发增加索引之类的,以及与发起者沟通把查询时间放在服务器空闲的时候,或者使用从库查询,或是使用备份数据来查询。

2. 除了慢查询,还有哪些情况会导致MySQL卡顿,查询较慢?
有时候是由于磁盘 IO 慢导致查询慢了。可能还有其它并发读写磁盘、其它进程抢占 CPU 等情况,但我们的数据库是单独运行在一台机器上的,所以没有遇到其它的可能情况。

3. 针对于数据库优化,您有哪些比较实用的建议和想法?
很多的方案都从书上读来的,用得多的还是根据数据查询、写入等的使用情况来设计合理的索引。

4. 结合生产环境,您觉得 MySQL,较于PG NOsql DB2 Sybase MongoDB Oracle等数据库来,他的优点在哪?在什么情况下你会使用其它类型的DB
咱是因为免费而用的 MySQL,而且有很多不同的引擎可以根据应用场景选用,挺灵活的。
我们的应用是 MySQL 与 SQLite 并且,当远程的 MySQL 不能连接的时候将需要保存的数据暂存在本地的 SQLite 里,等可以访问远程 MySQL 的时候再自动把本地的数据传上去。

5. 如果您是数据库的设计者,您会去怎么设计数据库的引擎和结构?
不在其位不谋其政,不是不想谋,而是经验水平知识技能等不够,咱就会几句 select,所以这个问题只能远观啊,总的来说底层设计都是为上层服务的,根据上层应用的需求来考虑,比如主要以备份为目的只查询的,用列存储;随机存取的用哈希;追求速度的用内存等等。

xdsnet 发表于 2015-12-09 15:49

占楼观望高手们表演

skykiker 发表于 2015-12-10 10:14

本帖最后由 skykiker 于 2015-12-10 10:31 编辑

1. 如果是你,你怎么处理慢查询引起的问题,并且在以后避免这种情况发生?
想看这条SQL本身慢是否合理,再看这条SQL的存在性是否合理,要和开发确认这条SQL的目的。

2. 除了慢查询,还有哪些情况会导致MySQL卡顿,查询较慢?         
可能到了系统资源瓶颈,CPU,IO,MEM,network。还有可能程序设计不当,过于频繁的查询,1个操作执行N个SQL。遇到过1个操作发行1w多个SQL的奇葩例子,那些SQL是ORM自动生成的。还遇到过一个另一个奇葩的例子,应用开发人员为了减轻DB的压力,想当然的把本该在服务端做的复杂查询放到了应用端计算,结果引发了大量的网络交互把系统拖死,后来这个问题通过物化视图解决了(那是Oracle的案例,MySQL不支持物化视图)。

3. 针对于数据库优化,您有哪些比较实用的建议和想法?
首先要结合应用设计,数据表设计,缓存,索引在设计上优化。其次才是数据库层的参数调优之类。

4. 结合生产环境,您觉得 MySQL,较于PG NOsql DB2 Sybase MongoDB Oracle等数据库来,他的优点在哪?在什么情况下你会使用其它类型的DB
MySQL较PG的优点是用的人多,DBA好找,除此以外我找不到任何MySQL明显比PG强的地方!单纯从数据库本身选型,基本上任何适合MySQL的场景都适合用PG,而且很多时候是更适合用PG。因为PG的功能特性,可靠性和综合性能都远远强与MySQL。
为什么这么说?功能特性方面,对比一下PG手册和MySQL手册上的功能自然就会明白,另外PG对JSON的完美支持使之可以完全替代MongoDB(MySQL 5.7对JSON的支持是不完整的)。可靠性方面,PG的对数据一致性有严格的保护,同步流复制可以轻松确保HA集群数据不丢,实际案例也证明,PG很少会宕机,而且宕机后也很少会起不来或丢数据(硬盘没有坏掉的前提下)。而使用MySQL的复制技术做HA,要确保不丢数据需要在部署上花很大的功夫。至于性能,非常简单的查询两者相差不大,复杂一些的查询PG会把MySQL远远甩在后面。PG还有非常丰富的索引,甚至可以定制索引以应对以前没人见过的场景。最后一点,有些公司不敢上PG是因为找不到有经验的PG DBA,实际上PG没有MySQL那么多坑,不需要多少踩坑经验,对着手册就可以轻松部署,当然也可以找提供PG第3方服务的公司协助。

5. 如果您是数据库的设计者,您会去怎么设计数据库的引擎和结构?
极少有业务已经到了现有的任何一个数据库无法满足需求,要重新设计一个数据库的地步。真有的话看业务场景吧!

jieforest 发表于 2015-12-10 16:47

1.如果是你,你怎么处理慢查询引起的问题,并且在以后避免这种情况发生?
对于MySQL的慢查询问题,通常我们是这么干的:
1)开启MySQL服务器的慢查询记录功能
mysql> set global slow_query_log=ON;
mysql> show variables like "slow%";
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| slow_launch_time    | 2                                  |
| slow_query_log      | ON                                 |
| slow_query_log_file | /opt/mysql/data/sql-slow.log |
+---------------------+------------------------------------+
3 rows in set (0.00 sec)
2)出现慢查询问题后,查看慢查询日志/opt/mysql/data/sql-slow.log
3)分析具体的问题,进行相应的处理。

2.除了慢查询,还有哪些情况会导致MySQL卡顿,查询较慢?
导致MySQL缓慢的因素有很多。比如:
1)DB数据模型设计不佳,长期运行后缓慢;
2)MySQL未做优化
比如默认的max_connections是150,可根据实际情况调整
又比如innodb_buffer_pool_size的设置,MySQL的优化点有很多
3)Linux服务器OS未做优化:内核参数、网络参数都需要根据实际情况调优
比如打开文件数,默认是1024,不能不优化
4)MySQL服务器的硬件可作优化:存储采用SSD等
5)网络带宽因素等

3.针对于数据库优化,您有哪些比较实用的建议和想法?
对于MySQL数据库的优化,可以跟随Percona的脚步,他们的优化做得非常好。
MariaDB也可以考虑。

4.结合生产环境,您觉得MySQL,较于PG NOsql DB2 Sybase MongoDB Oracle等数据库来,他的优点在哪?在什么情况下你会使用其它类型的DB
相比PG NOsql DB2 Sybase MongoDB Oracle等数据库,MySQL稳定、免费、易用,使用它可以减少开发时间,而且它也靠得住。

5.如果您是数据库的设计者,您会去怎么设计数据库的引擎和结构?
这方面没做过。对于MySQL引擎,一般我选择InnoDB引擎或者是XtraDB引擎,并做好优化即可。
未做深入。

xpk 发表于 2015-12-11 08:56

看起啦是本好书,占个楼留个名就OK了 , 准备自己买一本靠谱点!坐观各位看官点评!

   

rtm009 发表于 2015-12-11 09:16

:lol一直不喜欢mysql的路过
页: [1] 2 3 4
查看完整版本: 浅谈Mysql高可用,DBA们将如何应对?