馒头商家院蹭课收获[05.09]

上午

互联网时代:
传播 = 双向交流
品牌 = 情感载体

如何成为提问题的高手?
答:五个为什么。

示例:

我的汽车无法启动。(问题)
为什么?:电池电量耗尽。(第一个为什么)
为什么?:交流发电机不能正常工作。(第二个为什么)
为什么?:交流发电机皮带断裂。(第三个为什么)
为什么?:交流发电机皮带远远超出了其使用寿命,从未更换过。(第四个为什么)
为什么?:我一直没有按照厂家推荐的保养计划对汽车进行过保养和维护。(第五个为什么)

根本原因

在实际应用当中,有可能将这种提问进一步扩展到六问、七问,甚至是更多的“为什么”。这么做很可能是合乎实际情况的,因为“五个为什么”之中所说的“五”并非一成不变的真理;反而,这个“五”字实际上说的就是,五次反复提出为什么,一般来说足以找出根本原因。真正的关键所在就是,鼓励解决问题的人要努力避开主观或自负的假设和逻辑陷阱,从结果着手,沿着因果关系链条,顺藤摸瓜,穿越不同的抽象层面,直至找出原有问题的根本原因。简而言之,就是鼓励解决问题的人要有“打破砂锅问到底”的精神。

下午

打造粉丝文化

筛选种子用户
种子用户需要满足两个维度,活跃度和爱分享。
获得核心种子用户的时候一定是点对点,口碑就是来自于种子用户。种子用户也会滚雪球般帮你找到更多用户。

PS:如果用户很活跃但是不分享给别人,只能是发烧用户,不是种子用户。

官方社交平台特殊性
来的人100%是用户
强烈的认知感,强烈的共鸣、强烈的归属感
是用户后方的大本营,是家,在这里不会被欺负
是粉丝文化是根本,最基础的阵地
带走官方所要传达的信息
用户属性得到最大发挥
同样的话题,且话题排他
同样的信仰,同样的。。。。。

马利克:六大有效的管理原则

为什么大家对管理有许多误解?原因是基本上,关于管理的本质一直欠缺厘清。什么是管理?管理是一门艺术,还是一门科学?

我认为,探讨这些议题的最佳方式,是把管理视为一门实务(practice),就像医生或工程师的专业,重要的不是理论对不对,而是行动成不成功。好医生的真正成功处不在于诊断,而在于治愈病人,应用与行动是所有专业必不可缺的部分,这是它们和科学明显不同之处。

把管理视为一门专业,就能促成相当程度的进步。更确切地说,就是把一门艺术中可以被教导和学习的东西,透过训练,让更多人学会。我也希望藉此激发专业精神——勤奋、认真、周详彻底,这些是专业的责任。

新时代的有效管理

有效管理的原则包括注重结果、对整体做出贡献、专注于少数事项、利用长处、信任、正面思维。

1.注重结果:每个组织都需要结果,组织成立的目的就是为了达成结果。不只是企业,包括学校、医院、救世军、军方组织,或提倡世界和平的某个社团,都必须达成结果,只是结果不仅仅是经济性质的。

有些观念会妨碍注重结果的原则,例如主张工作应该是一种乐趣。我们应该省思以下几点:

一、没有任何一个职务能永远令人感到快乐;
二、每一项职务都有绝非人人都喜欢的成
三、任何社会中皆存在某些不是人人都喜欢担任的职务。

所以我们不应专注于工作本身的乐趣,而是应该着重工作的结果,良好的结果应该带来喜乐与荣耀,并找到生命中最重要的东西——意义。

2.对整体做出贡献:从那些优良、有成效的经理人的思维和行动中,可以看出他们都具有全方位思考的习惯,很容易设想到全体。他们会从伏案中抬起头来,向窗外凝视沉思:「我的领域专长对这个世界和这个组织有何意义?我的所作所为能使谁获益?」这种思考方式是顾客导向的基础,也是创业家思维的要素。

3.专注于少数事项:几乎任何以成就闻名的人,都是专注于一件事。专注是达成结果之匙。专注原则首先应运用在时间管理,高效经理人每单位时间只处理一件事,处理完第一件事后,才处理第二件。

专注原则的第二个重要应用例子是目标管理。年度目标如果只有两、三项,才是真正重要而且人们想完成的事项。专注,是解决大多数经理人最头痛的压力问题的唯一方法。

4.利用长处:大多数人很容易找出别人的弱点,因为它们惹人烦恼,导致麻烦。学校也一向着重消除弱点,因为他们必须使每个小孩具备将来不论从事什么工作都必须具备的起码技能。

但是,没有人因为仅仅具备基本能力就能在职场上成功。人们会成功、有成效,是因为他们具有长处并发挥了长处。所以经理人必须辨识并发挥部属的长处,让他们专注于长处,以创造巅峰绩效。至于他们的缺点,组织应该使人们的弱点无足轻重,不会导致重要影响。

5.信任:如果经理人能维持周遭者的信任,他们就建立了强健而坚实的管理环境,有韧性而不易受伤害。

如何建立信任?最简单的原则就是部属有错时替部属扛责任、成功时归功劳给部属。另外,真诚和正直才能赢得信任。信任也建立于可预测性和可靠性的基础之上,我们的游戏规则和言辞都必须确凿、有效。

6.正面思维:经理人常被视为问题的解决者,不过辨识及利用机会比解决问题更重要。正面思维使经理人把注意力转向机会,他们也比较可能找到解决方法。要在困境中寻找机会,这跟自我激励的修炼有密切关联,许多运动教练和运动员都会实行的「心智训练」法很有效,可以在关键时刻让自己专注,控制怯场和紧张不安。

以上这些管理的原则,是企业文化的核心,也将决定管理工作的质量。经理人必须遵守并学习这些原则,也要了解它们彼此之间的关联性。

Query语句优化基本思路和原则

在分析如何优化 MySQL Query 之前,我们需要先了解一下 Query 语句优化的基本思路和原则。一 般来说,Query 语句的优化思路和原则主要提现在以下几个方面:
1. 优化更需要优化的 Query;
2. 定位优化对象的性能瓶颈;
3. 明确的优化目标;
4. 从 Explain 入手;
5. 多使用 profile
6. 永远用小结果集驱动大的结果集;
7. 尽可能在索引中完成排序;
8. 只取出自己需要的 Columns;
9. 仅仅使用最有效的过滤条件;
10. 尽可能避免复杂的Join和子查询;
上面所列的几点信息,前面4点可以理解为 Query 优化的一个基本思路,后面部分则是我们优化中 的基本原则。
下面我们先针对 Query 优化的基本思路做一些简单的分析,理解为什么我们的 Query 优化到底该 如何进行。
优化更需要优化的 Query
为什么我们需要优化更需要优化的 Query?这个地球人都知道的“并不能成为问题的问题”我想就 并不需要我过多解释吧,哈哈。
那什么样的 Query 是更需要优化呢?对于这个问题我们需要从对整个系统的影响来考虑。什么 Query 的优化能给系统整体带来更大的收益,就更需要优化。一般来说,高并发低消耗(相对)的 Query 对整个系统的影响远比低并发高消耗的 Query 大。我们可以通过以下一个非常简单的案例分析来 充分说明问题。
假设有一个 Query 每小时执行 10000 次,每次需要 20 个 IO。另外一个 Query 每小时执行 10 次, 每次需要 20000 个 IO。
我们先通过 IO 消耗方面来分析。可以看出,两个 Query 每小时所消耗的 IO 总数目是一样的,都是 200000 IO/小时。假设我们优化第一个 Query,从20个IO降低到18个IO,也就是仅仅降低了 2 个IO, 则我们节省了 2 * 10000 = 20000 (IO/小时)。而如果希望通过优化第二个 Query 达到相同的效果, 我们必须要让每个 Query 减少 20000 / 10 = 2000 IO。我想大家都会相信让第一个 Query 节省 2 个 IO 远比第二个 Query 节省 2000 个 IO 来的容易。
其次,如果通过 CPU 方面消耗的比较,原理和上面的完全一样。只要让第一个 Query 稍微节省一 小块资源,就可以让整个系统节省出一大块资源,尤其是在排序,分组这些对CPU 消耗比较多的操作中 尤其突出。
最后,我们从对整个系统的影响来分析。一个频繁执行的高并发Query 的危险性比一个低并发的 Query 要大很多。当一个低并发的 Query 走错执行计划,所带来的影响主要只是该 Query 的请求者的 体验会变差,对整体系统的影响并不会特别的突出,之少还属于可控范围。但是,如果我们一个高并发 的 Query 走错了执行计划,那所带来的后可很可能就是灾难性的,很多时候可能连自救的机会都不给你 就会让整个系统 Crash 掉。曾经我就遇到这样一个案例,系统中一个并发度较高的 Query 语句走错执 行计划,系统顷刻间 Crash,甚至我都还没有反应过来是怎么回事。当重新启动数据库提供服务后,系 统负载立刻直线飙升,甚至都来不及登录数据库查看当时有哪些 Active 的线程在执行哪些 Query。如 果是遇到一个并发并不太高的 Query 走错执行计划,至少我们还可以控制整个系统不至于系统被直接压 跨,甚至连问题根源都难以抓到。
定位优化对象的性能瓶颈
当我们拿到一条需要优化的 Query 之后,第一件事情是什么?是反问自己,这条 Query 有什么问 题?我为什么要优化他?只有明白了这些问题,我们才知道我们需要做什么,才能够找到问题的关键。 而不能就只是觉得某个 Query 好像有点慢,需要优化一下,然后就开始一个一个优化方法去轮番尝试。 这样很可能整个优化过程会消耗大量的人力和时间成本,甚至可能到最后还是得不到一个好的优化结 果。这就像看病一样,医生必须要清楚的知道我们病的根源才能对症下药。如果只是知道我们什么地方 不舒服,然后就开始通过各种药物尝试治疗,那这样所带来的后果可能就非常严重了。
所以,在拿到一条需要优化的 Query 之后,我们首先要判断出这个 Query 的瓶颈到底是 IO 还是 CPU。到底是因为在数据访问消耗了太多的时间,还是在数据的运算(如分组排序等)方面花费了太多资 源?
一般来说,在 MySQL 5.0 系列版本中,我们可以通过系统自带的 PROFILING 功能很清楚的找出一个 Query 的瓶颈所在。当然,如果读者朋友为了使用 MySQL 的某些在 5.1 版本中才有的新特性(如 Partition,EVENT等)亦或者是比较喜欢尝试新事务而早早使用的MySQL 5.1 的预发布版本,可能就没 办法使用这个功能了,因为该功能在MySQL5.1 系列刚开始的版本中并不支持,不过让人非常兴奋的是该 功能在最新出来的 MySQL 5.1 正式版(5.1.30)又已经提供了。而如果读者朋友正在使用的 MySQL 是 4.x 版本,那可能就只能通过自行分析 Query 的各个执行步骤,找到性能损失最大的地方。
明确的优化目标
当我们定为到了一条 Query 的性能瓶颈之后,就需要通过分析该 Query 所完成的功能和 Query 对 系统的整体影响制订出一个明确的优化目标。没有一个明确的目标,优化过程将是一个漫无目的而且低
效的过程,也很难达收到一个理想的效果。尤其是对于一些实现应用中较为重要功能点的Query 更是如 此。
如何设定优化目标?这可能是很多人都非常头疼的问题,对于我自己也一样。要设定一个合理的优 化目标,不能过于理想也不能放任自由,确实是一件非常头疼的事情。一般来说,我们首先需要清楚的 了解数据库目前的整体状态,同时也要清楚的知道数据库中与该Query 相关的数据库对象的各种信息, 而且还要了解该 Query 在整个应用系统中所实现的功能。了解了数据库整体状态,我们就能知道数据库 所能承受的最大压力,也就清楚了我们能够接受的最悲观情况。把握了该Query 相关数据库对象的信 息,我们就应该知道实现该 Query 的消耗最理想情况下需要消耗多少资源,最糟糕又需要消耗多少资 源。最后,通过该 Query 所实现的功能点在整个应用系统中的重要地位,我们可以大概的分析出该 Query 可以占用的系统资源比例,而且我们也能够知道该 Query 的效率给客户带来的体验影响到底有多 大。
当我们清楚了这些信息之后,我们基本可以得出该 Query 应该满足的一个性能范围是怎样的,这也 就是我们的优化目标范围,然后就是通过寻找相应的优化手段来解决问题了。如果该Query 实现的应用 系统功能比较重要,我们就必须让目标更偏向于理想值一些,即使在其他某些方面作出一些让步与牺 牲,比如调整 schema 设计,调整索引组成等,可能都是需要的。而如果该 Query 所实现的是一些并不 是太关键的功能,那我们可以让目标更偏向悲观值一些,而尽量保证其他更重要的Query 的性能。这种 时候,即使需要调整商业需求,减少功能实现,也不得不应该作出让步。
从 Explain 入手
现在,优化目标也已经明确了,自然是奥开始动手的时候了。我们的优化到底该从何处入手呢?答 案只有一个,从Explain 开始入手。为什么?因为只有Explain才能告诉你,这个 Query 在数据库中是 以一个什么样的执行计划来实现的。
但是,有一点我们必须清楚,Explain 只是用来获取一个 Query 在当前状态的数据库中的执行计 划,在优化动手之前,我们比需要根据优化目标在自己头脑中有一个清晰的目标执行计划。只有这样, 优化的目标才有意义。一个优秀的SQL 调优人员(或者成为 SQL Performance Tuner),在优化任何一 个 SQL 语句之前,都应该在自己头脑中已经先有一个预定的执行计划,然后通过不断的调整尝试,再借 助 Explain 来验证调整的结果是否满足自己预定的执行计划。对于不符合预期的执行计划需要不断分析 Query 的写法和数据库对象的信息,继续调整尝试,直至得到预期的结果。
当然,人无完人,并不一定每次自己预设的执行计划都肯定是最优的,在不断调整测试的过程中, 如果发现 MySQL Optimizer 所选择的执行计划的实际执行效果确实比自己预设的要好,我们当然还是应 该选择使用 MySQL optimizer 所生成的执行计划。
上面的这个优化思路,只是给大家指了一个优化的基本方向,实际操作还需要读者朋友不断的结合 具体应用场景不断的测试实践来体会。当然也并不一定所有的情况都非要严格遵循这样一个思路,规则 是死的,人是活的,只有更合理的方法,没有最合理的规则。
在了解了上面这些优化的基本思路之后,我们再来看看优化的几个基本原则。 永远用小结果集驱动大的结果集
很多人喜欢在优化 SQL 的时候说用小表驱动大表,个人认为这样的说法不太严谨。为什么?因 为大表经过 WHERE 条件过滤之后所返回的结果集并不一定就比小表所返回的结果集大,可能反而更小。 在这种情况下如果仍然采用小表驱动大表,就会得到相反的性能效果。
其实这样的结果也非常容易理解,在MySQL 中的 Join,只有 Nested Loop 一种 Join 方式,也就是 MySQL 的 Join 都是通过嵌套循环来实现的。驱动结果集越大,所需要循环的此时就越多,那么被驱动表 的访问次数自然也就越多,而每次访问被驱动表,即使需要的逻辑IO 很少,循环次数多了,总量自然也 不可能很小,而且每次循环都不能避免的需要消耗 CPU ,所以 CPU 运算量也会跟着增加。所以,如果 我们仅仅以表的大小来作为驱动表的判断依据,假若小表过滤后所剩下的结果集比大表多很多,结果就 是需要的嵌套循环中带来更多的循环次数,反之,所需要的循环次数就会更少,总体IO 量和 CPU 运算 量也会少。而且,就算是非 Nested Loop 的 Join 算法,如 Oracle 中的 Hash Join,同样是小结果集 驱动大的结果集是最优的选择。
所以,在优化 Join Query 的时候,最基本的原则就是“小结果集驱动大结果集”,通过这个原则 来减少嵌套循环中的循环次数,达到减少IO 总量以及 CPU 运算的次数。
尽可能在索引中完成排序
只取出自己需要的 Columns
任何时候在 Query 中都只取出自己需要的Columns,尤其是在需要排序的 Query 中。为什么?
对于任何 Query,返回的数据都是需要通过网络数据包传回给客户端,如果取出的Column 越多, 需要传输的数据量自然会越大,不论是从网络带宽方面考虑还是从网络传输的缓冲区来看,都是一个浪 费。
如果是需要排序的 Query 来说,影响就更大了。在 MySQL 中存在两种排序算法,一种是在 MySQL4.1 之前的老算法,实现方式是先将需要排序的字段和可以直接定位到相关行数据的指针信息取 出,然后在我们所设定的排序区(通过参数sort_buffer_size 设定)中进行排序,完成排序之后再次 通过行指针信息取出所需要的 Columns,也就是说这种算法需要访问两次数据。第二种排序算法是从 MySQL4.1 版本开始使用的改进算法,一次性将所需要的Columns 全部取出,在排序区中进行排序后直 接将数据返回给请求客户端。改行算法只需要访问一次数据,减少了大量的随机IO,极大的提高了带有 排序的 Query 语句的效率。但是,这种改进后的排序算法需要一次性取出并缓存的数据比第一种算法 要多很多,如果我们将并不需要的Columns 也取出来,就会极大的浪费排序过程所需要的内存。在 MySQL4.1 之后的版本中,我们可以通过设置 max_length_for_sort_data 参数大小来控制 MySQL 选择 第一种排序算法还是第二种排序算法。当所取出的Columns 的单条记录总大小 max_length_for_sort_data 设置的大小的时候,MySQL 就会选择使用第一种排序算法,反之,则会选 择第二种优化后的算法。为了尽可能提高排序性能,我们自然是更希望使用第二种排序算法,所以在 Query 中仅仅取出我们所需要的 Columns 是非常有必要的。
仅仅使用最有效的过滤条件
很多人在优化 Query 语句的时候很容易进入一个误区,那就是觉得 WHERE 子句中的过滤条件越多 越好,实际上这并不是一个非常正确的选择。其实我们分析Query 语句的性能优劣最关键的就是要让他
选择一条最佳的数据访问路径,如何做到通过访问最少的数据量完成自己的任务。

打造卓越团队的10种原则

1.致力于一个一致同意的目标--那个渴望的“结果”。
2.明确团队为得到这个“结果”而必须云做的事情。
3.有共同战胜困难和挑战的欲望。
4.明白团队与远方世界之间的联系。
5.尽可能增加团队成员的见面次数。
6.创造一种互惠反馈的文化--以便系统化地提出绩效标准。
7.以团队为单位进行学习和发展--以便制定出绩效标准。
8.如果你在单独行动,以个人为单位来完成更多的任务。
9.得到团队渴望的“结果”。
10.团队实现目标时不要放松休息--全队转向下一个目标。

个人因素和集体因素对团队的影响

个人因素作用程度低,集体因素作用程度也低,造成成员之间的隔阂。

集体因素作用程度低,个人因素作用程度高,造成成员不服从团队的后果。

集体因素作用程度高,个人因素作用成度低,造成大家人云亦云的后果。个体成员必须服从团队,团队里没有自我。只重视集体,不重视个体。如果大家都认为“集体高于个人”,那么人去亦云不失为良策。但是,如果成员不这么认为,那么他们的行动就不可能是积极主动的,只可能是消极被动的。

集体因素作用较高,个人因素作用也高,能够营造富有创造力的环境。只是有一点需要注意。在这种环境中,个人需要发挥自己的情商,在认识和管理自己情绪的同时,也应该认识他人的情绪,并作出适当的回应。

个人因素与集体因素的特点:

个人因素希望团队赋予每个成员权利、社交、尊重、奖励、职业。

集体因素强调整体性,它注重和谐,并且寻求集体的利益最大化。

团队的定义和特点

高想一下这样的情景:你刚刚找到一份工作,招聘主管向你走来,热情的笑着喊道:“欢迎你加入我们的团队!”

团队这个词的涵义很特别--你是团队的一员,表明团队接纳你、需要你。

可是团队是什么呢?管理说研究者苏珊.科思和戴安娜.贝利为《管理杂志》写过一篇关于团队效率的全面概述,她们对团队的定义是:
团队是这样一群人的集合:他们在工作中互相依靠,一同为结果负责,隶属于一个或多个更大的社会系统(例如商业单位或政府机构)。团队成员把彼此看作是一个完整的社会实体,他们有时要超越组织界限以处理好各种关系。

关于团队的命题还有一本成功的书,叫做《团队智慧》(Teh Wisdom of Teams),其中J.R.卡岑巴赫(J.R.Katzenbach)和D.K.史密斯(D.K.Smith)以相似的方式给团队下了定义。他们把团队定义为:
数量不多的一各人,他们技能互补、目标相同、工作表现指标一致、具有协同的认知、彼此为对方负责。

通过以上的2种定义,可以总结出团队具备以下特点:
1.人数较少
2.技能互补
3.目标一致
4.工作表现指标一致
5.协同认知
6.彼此为对方负责