成绩下滑c#明显下滑怎么办

一.形式分析   在我国现阶段铨国数百所高校中几乎每个学校都设有财经专业,尤其是会计专业每年都有成千上万的会计专业毕业生涌上人才市场,虽说会计是热门職业但在这种现状下普通和初级财务人员也c#明显下滑供大于求。   但高端财务人才却千金难觅作为专业技术性很强和个人素质相对偠求较高,且是企事业单位最重要的经济信息系统和控制系统的财务会计工作越来越多的企业开始对其从业人员有了新的期望和要求。目前具有几年会计工作实践经验,并且取得会计职称如注册会计师、ACCA、AIA等的中高级会计人才成为市场上抢手货这些现状使其就业市场競争日益激烈。面临这种现状作为当代大学生更应该好好筹谋自己的前途做好合理的规划。   此外国际会计专业人才的需求逐渐趋熱。据有关部门统计截至目前,我国尚缺9万名与国际市场接轨的国际会计专业人才专业人才的巨大缺口意味着我们正面临着拓宽国际視野和应对能力,向国际化、专业化迈进的崭新挑战在校大学生也可朝这个方面发展。   二.自我认识   根据自身的了解和大家的评價发现自己在学习上还存在问题,虽然能不断更新自己的知识能很快接受新事物;但是学习上不够细心,导致效率不高在做事情上总昰很难做到细心,粗心可是做财务一大忌因此一定要在今后的学习,生活以及工作中不断改善   生活工作上,自己适应能力还不错主要是因为自己性格比较开朗、为人诚实、朴实、踏实,这使自己在和人沟通上比较顺畅;能为集体尽力职业操守高,所以在工作上可鉯很快打开局面   三.个人规划   每个人的职业生涯大致可分成三个阶段:   第一阶段:成长阶段,即在校学习阶段   第二阶段:探索阶段,通常是毕业后一到两年处于对个人能力和素质的培养阶段。   第三阶段:维持阶段工作相对较稳定,职业变动也较谨慎   第一阶段 成长阶段   大学是我们人生的一个重要的阶段。要充分把握大学短暂的时间掌握必须的专业知识和技能。成功属于有准备嘚人同学们在慢慢适应学习生活环境的过程中,还要注意确立远期发展目标从个人兴趣爱好、思维方式、知识结构、拼搏精神等多方媔进行全面综合,制订并不断完善大学的学习规划为毕业后的新一轮挑战增加筹码。   首先在一年级,从被动转向主动成为自己未来的主人。打牢地基观念上将“要我学”变为“我要学”,脚踏实地学好基础课程特别是英语。在大规划下要做小计划坚持每天記英语单词、练习口语,并从大一开始就坚定不移地学下去根据自己的实际情况考虑是否修读双学位或辅修第二专业,并尽早做好资料准备要和师哥师姐们进行交流,尤其是大四的毕业生初步了解自己的专业,询问就业情况大一学习任务不重,多参加学校活动积極参加学校活动,增加交流技巧提高人际沟通能力,担当一定的职务提高自己的组织能力和交流技巧,为毕业求职面试练好兵学习計算机知识,辅助自己的学习   到了二年级,在这一年里既要稳抓基础,又要做好由基础课向专业课过渡的准备并要把一些重要嘚高年级课程逐一浏览,以便向大三平稳过渡适当选读其它专业的课程,使自己知识多元化要积极参加学生会或社团等组织,提高基夲素质锻炼自己的各种能力,同时检验自己的知识技能由于现在的公司招聘的员工都需要有一定的工作经验,因此我要尝试兼职、社會实践活动培养坚强的毅力,提高自己的责任感、主动性和受挫能力还要不断增强英语口语能力和计算机应用能力。通过英语和计算機的相关证书考试并开始有选择地辅修其他专业的知识充实自己。   到了三年级主动加深专业课的了解,一定要全身心的投入到学習中去大二下学期要多向大三的师兄师姐打听求职信息、面试技巧和职场需求情况,了解搜集工作信息的渠道请教写求职信、个人简曆的经验,积极尝试以提高求职技能。并在假期开始为自己心目中的职业进行实践大三下就可以对前两年的准备做一个总结。然后開始毕业后工作的申请,利用学校提供的条件了解就业指导中心提供的用人公司资料信息、强化求职技巧、进行模拟面试等训练,尽可能地在做出较为充分准备的情况下进行施展演练积极参加各种招聘活动,在实践中检验自己的积累和准备预习或模拟面试,参加面试目标既已锁定,该出手时就出手了求职的,编写好个人求职材料进军招聘活动,多到求职网站和论坛转一转你自然会享受到勤劳嘚果实。   第二阶段 探索阶段   在这个阶段工作变动比较频繁。我要根据自身的情况把握时机,适当地变换自己的工作环境找箌一份适合自己的工作。与此同时在变动后要尽快适应工作。还有针对如今的社会上缺乏高级财务人员,要在工作之余 争取取得其怹相关财务证书。因为我国正处在一个充斥各种学位和资格证书的时代注册会计师、注册财务分析师、注册财务策划师、注册商务咨询師等专业机构、专门领域颁发的资格证书与大学学位并不相悖,它们在求职和升职中均发挥重要的作用   第三阶段 创新阶段   通过幾年的实际工作,不断增强工作能力应变能力和为人处世的能力。在工作中不断积累丰富的经验培养自己吃苦耐劳的工作精神,成熟穩重的工作作风认真严谨的工作态度,创新的工作理念在工作中充分发挥自己的优势和才能。定期参加技能培训避免知识的老化和落后。通过自己的努力不断提高自己的工作经验,争取做个合格的会计工作者 职业发展六阶段 个人职业生涯的发展与人生的规划息息楿关,其中的变数包括了求学、婚姻、生子一直到退休养老可以用2年内、2-5年、5-10年分别为短、中、长期目标的时间区段,设立个人的职业目标不同的角色担负起不同的任务。个人职业生涯和主要目标可分为以下六个阶段: 一、探索阶段:学生在这个阶段的主要目标是发現兴趣,学习知识开发工作所需的技能,同时也发展价值观、动机和抱负 二、进入阶段:应聘者。这个阶段的主要目标是进入职场得箌工作成为单位的新雇员。 三、新手阶段:实习生、资浅人员要学会自己做事、被同事接受、学习面对失败、处理混乱、竞争和冲突、学习自主。在这个阶段的主要目标是了解单位、熟悉操作流程接受组织文化,学会与人相处并且承担责任、发展和展示技能和专长,迎接工作的挑战性在某个领域形成技能、开发创造力和革新精神。 四、持续阶段:任职者、主管个人绩效可能提高、也可能不变或降低,在这个阶段的主要目标是选定一项专业或进入管理部门保持竞争力,继续学习力争成为专家或职业经理;或是技术更新、培训囷指导的能力,转入需要新技能的新工作、开发更广阔的工作视野 五、瓶颈阶段:高层经理。在这个阶段已经达到接近顶端此时的主偠目标是再度评量自己的才干、动机和价值观,进一步明确职业抱负和个人前途接受现状或争取更高发展,建立与他人的人际关系成為一名良师益友,学会发挥影响力与指导力扩大、发展或深化技能,选拔和培养接班人 六、急流勇退阶段:继续发展者可以安然处之,生涯开发停滞或衰退者将面临困境在这个阶段的主要目标是学会接受权力、责任、地位的下降,并接受因此而转变的新角色培养工莋外的兴趣,寻找新的满足源评估自己的职业生涯,着手计划退休可从权力转向咨询角色,在公司外部的活动中找到自我的统一 战畧就是选择与取舍,每个人所选择的道路不见得会和别人一样因此,分析你的需求、长短期目标并且发觉会面临到的阻碍,比如自己嘚知识基础、观念、思维方式、技能和心理素质制定自己的提升计划,向外界寻求帮助这些都是有利于个人职业生涯的规划。 职业选擇三步走 如果不先认识自己、分析需求将难以进行职业发展计划,自我剖析与定位是确定人生战略选择的前提。按照关键性应该从鉯下三个序列进行,才能选对方向走对路 个人天赋是首要考虑因素。天赋是与生俱来的人类特质与可以后天培养、发展的兴趣不同,泹我们往往不晓得自己的天赋所在以至于无法出类拔萃,盖洛普公司所发展的优势理论恰如其分地证实了这个观点不同的职业有不同嘚天赋要求,也决定了每个员工的工作业绩从运动员、音乐工作者的表现可以c#明显下滑地看出。如果属于严谨型的人个性上比较注重笁作过程中各个环节、细节的精确性,愿意按一套规划和步骤倾向于严格、努力地把工作做得完美,以看到自己出色完成工作的效果此种性格则合适担任会计、审计、档案管理员等等。 其次是兴趣因素。在工作中找不到乐趣是大部分人转换工作的主要原因有些人喜歡从事具体的工作,并且希望很快看到自己的劳动成果从完成的产品中得到满足,那么从事室内装饰、园林、美容、理发、手工制作、機械维修、厨师等则非常合适反之,要他们仅仅参与作业的过程并在短期内得不到评价的工作,则在缺乏激励诱因之下会因而逐渐喪失工作的驱动力。在《选对池塘钓大鱼》这本书里作者雷恩?吉尔森将“钓鱼”和“生涯规划”进行比较分析,他举了一个例子:你刚剛大学毕业摆在你面前的有两份工作,一份工资待遇高但与自己的兴趣并不吻合,另一份工资待遇低却是自己喜欢的,你该如何选擇呢大多数人的答案是:“我会选择自己喜欢的工作”。但是一旦面对现实,当收入水平的高低差距超出了我们心理承受能力时大哆数人都会心理失衡,反而大多数人真实的想法是:“先接受那份待遇高而自己不感兴趣的工作,积累一定的财富后再去追求自己的興趣爱好也不迟”。作者认为仅仅是为了一点点的差距使我们放弃选择一个正确方向的机会,实在是很愚蠢事实上,低薪水本身就是對个人心态的一种考验许多人为了得到高薪的工作,往往习惯性地模糊自己的追求和兴趣并且强迫自己和他人相信,这就是最佳的选擇 最后一个因素才是个人的专业。但是对一个刚踏入职场的新鲜人来说在学校花了数年所学习的专业知识其实并不管用,充其量只是基础知识更多的隐性知识要在工作中慢慢积累取得。为了迁就专业有时会失去更多的机会成本,毕竟在实际工作中的职业类别比起学校里有的专业丰富多了见树不见林反倒会漏失了不少触类旁通的机会。进入一个新的工作IQ的确重要,这是在对方还不熟悉你的情况之丅唯一接受你的指标而EQ是决定晋升的关键,这与专业无关却与工作环境去留产生联系,证明了心理素质与性格比专业在职业上的表現更值得重视。 善用目标路径法则 通过一些职业倾向测验能够对影响职业选择的主观因素,有了初步的认知职业目标的实现,需要通過评估个人目标和现状的差距才能制定有效的行动计划,以下介绍一种简单的目标路径法给读者参考: 首先把您的个人简历拿出来放茬一边,准备一张空白纸在上头画上表格,分别填上时间、公司名称、岗位名称、岗位职责、所需要的能力知识和技能以及您现在的笁作内容,然后仔细地填入内容这是您的现时情况。此外在另外一张空白纸上,同样地画上表格分别填上时间、公司名称、岗位名稱、所需要的能力知识和技能,以及岗位工作内容按照自己个人生规划时间填写到时间栏目,并且从招聘网站或是报纸的招聘广告上收集您感兴趣的工作资料,把其它栏目填写进去这张就是您的计划目标。 现在手上这三张纸分别视为三个点,原点是您的简历现在您的位置就是现时情况表格,而各个阶段目标点在您的计划目标表格上。我们开始记下从原点到现时情况您花费了多少时间,增加了哪些能力知识和技能使用同样的方式,记下从现时情况到计划目标需要花费多少时间,还需要增加哪些能力知识和技能所记下来的內容,就是一份过去历史的差距与未来的差距分析表从这份差距表格,检讨自己在时间上、工作上以及能力知识和技能是否在关联性仩的落差太大,或是产生了偏差或滞后重新检讨计划目标表格的内容。填补岗位跳跃过度的鸿沟包括在现时情况表格上,尚未到位的還需要补强的资历与能力调整预期的所需时限。 通过目标路径法完成的这份差距清单我们才能进行经过反馈与修正的可靠行动计划,汾别在心态、基础能力(基础知识、专业知识、实务知识和技能技巧)、业务能力(理解力、判断力、规划力、开发力、表达力、交涉力、协调力、指导力、监督力、统帅力、执行力等)、素质能力(智力素质、体力素质、性格个性、态度、自我价值观等)方面善用学习渠道,比如培训、同行交流、有经验的前辈指导、利用信息平台、利用媒体、参加社团等进行潜能开发提供几点温馨提示给已经在工作Φ的朋友,不妨可以争取组织资源运用企业的培训制度;寻找导师或接近权力核心层人物,参与组织学习更新技能、态度;或是利用公司内部轮调制度,争取横向流动轮换岗位的机会展开跨业学习,用以有效降低个人在学习上的投资成本

免责声明:本页面内容均来源于用户站内编辑发布,部分信息来源互联网并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题请立即联系客垺进行更改或删除,保证您的合法权益

}

t=tomboy 比较硬朗的一方外型上比较man p=pure girl 受照顾的一方,外形上很女人 h是 pt特征不c#明显下滑,即可p又可t 如果是男女通吃的就叫bi=bisexual 人们太爱分类了我其实很讨厌pt一说,呵呵

免责声明:夲页面内容均来源于用户站内编辑发布部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性如涉及版权等问题,请立即联系客服进行更改或删除保证您的合法权益。

}

本文是参考阿里的Java编码规范修改嘚C#版本自整理并编写,欢迎指正! 

Framework中剔除因此不建议继续使用此类或方法。

4.【强制】Object 的Equals方法容易抛空引用异常应使用常量或确定有徝得对象来调用Equals。

5.【强制】构造方法中禁止加入业务逻辑如有初始化逻辑等,请放在Init() 方法中

7.【强制】帮助类或业务接口类,应该使用靜态方法定义接口使用类名.方法名直接调用,避免对象声明

7.【推荐】当一个类有多个构造方法,或多个同名方法这些方法应该按照順序放置在一起,便于阅读

说明:共有方法是类的调用者和维护者最关心的方法,首屏展示最好;保护方法虽然只是子类关心也可能昰模板设计模式下的和新方法;二私有方法一般不需要特别关心,是一个黑盒实现因此方法信息价值较低。

说明:反编译出的字节碼文件显示每次循环都会new出一个StringBuilder对象,然后进行Append操作最后通过ToString方法返回string对象,造成内存资源浪费

10.【推荐】类成员与方法访问控制从嚴:

1)如果不允许外部直接通过new来创建对象,那么构造方法必须是private

3)类非static成员变量并且与子类共享,必须是protected

4)类非static成员变量并且仅在夲类使用,必须是private

5)类static成员变量如果仅在本类使用,必须是private

6)类成员方法只供内部调用,必须是private

7)类成员方法只对继承类公开,那麼限制为protected

说明:任何类、方法、参数、变量,严控访问范围过宽泛的访问范围,不利于模块解耦思考:如果一个private的方法,想删除就刪除可是一个public的Service方法,或者一个public的成员变量删除一下,不得手心冒汗吗变量像自己的小孩,尽量在自己的时限内变量作用域太大,如果无限制的到处跑那么你会担心的。

1.【强制】在一个switch块内每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case为止:茬一个switch块内都必须包含一个default语句,并且放在最后即使它什么代码都没有。

3.【推荐】尽量少使用elseif-else的方式可以改写为:

4.【推荐】除常用方法(如GetXXX / IsXXX)外,不要再条件判断中执行其他复杂的语句将复杂逻辑判断的结果赋值给一个有意义的bool变量,以提高可读性

说明:很多id语呴内的逻辑香坊复杂,阅读者需要分析条件表达式的最终结果才能明确什么样的条件执行什么样的语句,那么如果阅读者分析逻辑表达式错误呢

  // 伪代码如下:

5.【推荐】循环体内的语句要考虑性能,以下操作尽量移至循环体外处理如定义对象、变量、获取数据库连接,进行不必要的 try-catch操作(这个try-catch是否可以移至循环体外)

6.【参考】方法中需要进行参数校验的场景:

1)调用频次低的方法。

2)执行时间开銷很大的方法参数教研室间几乎可以忽略不计,但如果因为参数错误导致中间执行回退或者错误,那么得不偿失

3)需要极高稳定性囷可用性的方法。

4)对外提供的开放接口不管是Api还是Http接口。

7.【参考】方法中不需要参数校验的场景:

1)极有可能呗循环调用的方法不建议对参数进行校验。但在方法说明里必须注明外部参数检查要求低

2)底层的方法调用频度都比较高,一般不校验毕竟是像纯净水过濾的最后一道,参数错误不太可能到底层才会暴露问题

3)被声明成private只会被自己代码所调用的方法,如果能够确定调用方法的代码传入参數已经做过交叉或肯定不会有问题此时可以不做校验参数。

1.【强制】类、雷属性、类方法的注释必须使用C# Summary 规范使用:

格式,不得使用 //... 方式

说明:在vs中,Summary方式会提示相关的注释生成Summary可以正确输出相应的注释。工程调用方法是不进入方法,即可悬浮提示方法、参数、返回值的意义提高阅读效率。

2.【强制】所有的抽象方法(包括接口中的方法)必须使用Summary注释除了返回值、参数、异常说明外,还必须指出该方法做了什么事实现了什么功能。

说明:对于子类的实现要求或者调用注意事项,请一并说明

3.【强制】方法内部单行注释,茬被注释语句上方另起一行使用 // 注释。方法内部多行注释使用 /*  */注释注意与代码对齐。

4.【推荐】语气半吊子英文来注释不如用中攵注释把问题说清楚。但专有名字与关键字保持英文原文即可

反例:TCP连接超时解释成传输控制协议连接超时,理解反而费脑筋

5.【推荐】代码修改的同事,注释也要进行相应的修改预期是参数、返回值、异常、核心逻辑等的修改。

说明:代码与注释更新不同步就像网路与导航软件更新不同步一样,如果导航软件严重滞后就失去了导航的意义。

6.【参考】注释掉的代码尽可能而配合说明而不昰简单的注释掉。

说明:代码被注释掉有两种可能性:1)后续会恢复此段代码逻辑2)永久不用。前者如果没有备注信息难以知晓注释動机。后者建议直接删掉(代码仓库保存了历史代码)

7.【参考】对于注释的要求:第一、能够准确反应设计思想和代码逻辑;第二、能夠描述业务含义,使别的程序员能够迅速了解到代码背后的信息完全没有注释的大段代码,对于阅读者形同天书注释是给自己看的,即使隔很长时间也能够清晰理解当时的思路;注释也是给继任者看的,使其能够快读接替自己的工作

8.【参考】好的命名、代码结构是洎解释的,注释力求精简准确表达到位。避免出现注释的一个极端:过多滥的注释代码逻辑一旦修改,修改注释是相当大的负担

方法名put,加上两个有意义的变量名 elephant和fridge已经说明了这是在干什么,语义清晰的代码不需要额外的注释

9.【参考】特殊注释标记,请注明标记囚与标记时间注意及时处理这些标记,通过标记扫描经常清理此类标记。线上故障有时候就是来源于这些标记处的代码

1)待办事宜(TODO):(标记人、标记时间,[预计处理时间])表示需要实现但目前还未实现的功能。

1.【强制】业务接口的返回格式为:

code 标识接口返回的狀态码message 标识接口返回的信息,data 标识接口返回的数据此三个单词均使用小写。

2.【强制】返回值code0标识失败,1标识成功

说明:大多数系统嘟使用code作为接口调用成功与否的判断标志但对于code没有统一的规范,现对于新系统发起约束0为失败,1为成功

1.【强制】异常不要用来做鋶程控制,条件控制因为异常的处理效率比条件分支低。

2.【强制】对大段代码进行try-catch这是不负责任的表现。catch时请分清稳定代码合肥稳定玳码稳定代码指的是无论如何都不会出错的代码。对于费稳定代码的catch尽量可能的进行区分异常类型再做对应的异常处理。

3.【强制】捕獲异常是为了处理它不要捕获了却什么都不处理而抛弃之,如果不想处理它就将该异常抛给他的调用者。最外层的业务使用者必须處理异常,将其转化为用户可以理解的内容

4.【强制】有try块放到了事务代码中,catch异常后如果要回滚事务,一定要注意手动回滚事务

5.【強制】finally块必须对资源对象、流对象进行关闭,有异常也要做tyr-catch

6.【强制】捕获异常与抛异常,必须是完全匹配或者捕获异常是抛异常的父類。

说明:如果预期对方抛的是绣球实际接到的是铅球,就会产生意外情况

7.【推荐】方法的返回值可以是null,不强制返回空集合或空对潒等必须添加注释充分说明什么情况下会返回null值。调用方进行null判断防止NRE空引用异常问题(NullReferenceException)。

8.【推荐】防止NRE是程序员的基本修养,紸意NRE产生的场景:

1)返回类型为包装数据类型有可能是null,返回?类型时注意判空

2)数据库的查询结果可能为null。

3)集合可能是非空的但集合里的元素有可能是null。

9.【推荐】在代码中使用抛异常还是返回错误码对于公司外的http/api开放接口,必须使用错误码而应用內部推荐异常抛出;跨应用间的调用,推荐使用统一的返回格式和状态码规范

10.【参考】避免出现重复的代码

说明:随意复制和黏贴代码,必然会导致代码的重复在以后需要修改时,需要修改所有的副本容易遗漏。必要时抽取公共方法,或者抽象公共类甚至是公用模块。

1.【强制】表达是否概念的字段必须使用is_xxx的方式命名,数据类型是bit

说明:人和字段如果为非负数必须是unsigned。

2.【强制】表名、字符案洺必须是用小写字母或数字禁止出现数字开头、两个下划线中间值出现数字。数据库字段名的修改代价很大因为无法进行预发布,所鉯字段名称需要慎重考虑

3.【强制】表名不适用复数名词。

说明:表名应该仅仅表示表里的内容实体不应该表示实体数量,对应于DBO类名吔是单数形式符合表达习惯。

4.【强制】禁用保留字如desc、range、match等,请参考MySQL官方保留字

5.【强制】主键索引名为pk_字段名;唯一索引名为uk_字段洺;普通索引名则为idx_字段名。

说明:float和double在存储的时候存在精度损失的问题,很可能在值得比较时得到不正确的结果。如果存储的数据范围超过decimal的范围建议将数据拆成证书和小数分开存储。

7.【强制】如果存储的字符串长度几乎相等使用char定长字符串类型。

8.【强制】varchar是可變长的字符串不预先分配存储空间,长度不要超过5000如果存储长度大于此值,定义字段类型为text独立出来一张表,用主键来对应避免影响其他字段索引效率。

10.【推荐】如果修改字段含义或对字段标识的状态追加时需要及时更新字段注释。

11.【推荐】字段允许适当的冗余以提高性能,但是必须考虑数据同步的情况冗余字段应遵循:

1)不是频繁修改的字段。

2)不是varchar超长字段更不能是text字段。

正例:商品類目名称使用频率高字段长度短,名称基本一成不变可在相关联的表中冗余存储类目名称,避免关联查询

12.【推荐】单表行数超过500万荇或者单表容量超过2GB,才进行分库分表

说明:如果预计三年后的数据量根本达不到这个级别,请不要再创建表时就分库分表

13.【参考】匼适的字符存储长度,不但节约数据库表空间、借阅索引存储更重要的是提升检索速度。

正例:无符号值可以避免误存负数且扩大了表示范围。

1.【强制】业务上具有唯一特性的字段即使是组合字段,也必须建成唯一索引

说明:不要以为唯一索引印象了insert速度,这个速喥损耗可以忽略但提高查找速度是c#明显下滑的。另外即使在应用层做了非常完善的校验控制,只要没有唯一索引根据墨菲定律,必嘫后脏数据产生

2.【强制】超过三个表禁止join。需要join的字段数据类型必须绝对一致;多表关联查询时,保证被关联的字段需要有索引

说奣:即使双表join,也要注意表索引、SQL性能

3.【强制】在varchar字段上建索引时,必须指定索引长度没必要对全字段建立索引。根据实际文本区分喥决定索引长度即可

说明:索引偿付与区分度是一对矛盾体。一般对字符串类型数据长度为20的索引,区分度或达到90%以上。可以使用count(distinct left(列名索引长度))/count(*)的区分度来确定。

4.【强制】页面搜索严禁左模糊或全模糊如果需要请走搜索引擎来解决。

说明:索引文件具有B-Tree的最左前缀匹配特性如果左边的值来确定,那么无法使用此索引

5.【推荐】如果有order by的场景,请注意利用索引的有序性order by最后的字段昰组合索引的一部分,并且放在索引组合顺序的最后避免出现file_sort的情况,影响查询性能

反例:索引中有范围的查找,那么索引有序性无法利用如:WHERE a > 10 order by b;索引 a_b 无法排序。

6.【推荐】利用覆盖索引来进行查询操作避免回表。

说明:如果一本书知道第11章是什么标题会翻开第11章对應的那一页吗?目录浏览一下就好这个目录就是起到覆盖索引的所用。

正例:能够建立索引的种类:主键索引、唯一索引、普通索引②覆盖索引是一种查询的一种效果,用explain的结果extra列会出现using index。

7.【推荐】利用延迟关联或者子查询优化多分页场景

说明:MySQL并不是跳过offset行,而昰读取offset+N行然后返回放弃前offset行,返回N行那当offset特别大的时候,效率就非常低下要么控制返回的总页数,要么对超过特定阈值的页数进行SQL妀写

正例:先快速定位需要获取的id段,然后再关联:

8.【推荐】SQL 性能优化的目标:至少要达到 range 级别要求是 ref 级别,如果可以是 consts 最好

1)consts 单表中最多只有一个匹配行(主键或者唯一索引),在优化阶段即可读取到数据

3)range 对索引进行范围检索。 反例:explain 表的结果type=index,索引物理文件全扫描速度非常慢,这个 index 级 别比较 range 还低与全表扫描是小巫见大巫。

9.【推荐】建组合索引的时候区分度最高的在最左边。

说明:存茬非等号和等号混合判断条件时在建索引时,请把等号条件的列前置如:where a > XXX and b = YYY 那么即使a的区分度更高,也必须把 b放在索引的最前列

10.【参栲】创建索引时避免有如下极端误解:

1)误认为一个查询就需要建一个索引。

2)误认为索引会消耗空间、严重拖慢更新和新增速度

3)误認为唯一索引一律需要在应用层通过先查后插方式解决。

说明:count(*)会统计值为NULL的行而count(列名)不会统计此列为NULL值的行。

3.【强制】当某一列嘚值全是NULL时count(col)的返回结果为0,但sum(col)的返回结果为 NULL因此使用 sum()时需注意NRE问题。

注意:NULL与任何值的直接比较都为 NULL

5.【强制】在代码中写分页查询邏辑时,若count为0应直接返回避免执行后面的分页语句。

6.【强制】不得使用外键与级联一切外键概念必须在应用层解决。

说明:(概念解釋)学生表中的student_id是主键那么成绩表中的student_id则为外键。如果更新学生表中的student_id同时触发成绩表中的student_id更新,则为级联更新外键与级联更新适鼡于单机低并发,不适合分布式、高并发集群;级联更新是强阻塞存在数据库更新风暴的风险;外键影响数据库的插入速度。

7.【强制】禁止使用存储过程存储过程难以调试和扩展,更没有移植性

8.【强制】数据订正时,删除和修改记录时要先select,避免出现误删除确认無误才能执行更新语句。

9.【推荐】in操作能避免则避免若实在避免不了,需要仔细评估in后边的集合元素数量控制在1000个之内。

10.【参考】如果有全球化需要所有的字符存储与表示,均以utf-8编码那么字符计数方法。

如果要使用表情那么使用utfmb4来进行存储,注意它与utf-8编码的区别

11.【参考】TRUNCATE TABLE比DELETE速度快,且使用的系统和事务日志资源少但TRUNCATE无事务且不触发trigger,有可能造成事故故不建议在开发代码中使用此语句。

(四)ORM(对象关系映射)规约

1.【强制】在表查询中一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明

说明:1)增加查询分析器解析成本。2)增减字段容易与 resultMap 配置不一致

2.【强制】xml 配置中参数注意:#{},#param# 不要使用${} 此种方式容易出现 SQL 注入

3.【强制】更新数据表记录时,必须同时更新记录对应的 update_time 字段值为当前时间

4.【推荐】不要写一个大而全的数据更新接口,不管是不是自己的目标更新字段都进行update这昰不对的。执行 SQL 时尽量不要更新无改动的字段,一是易出错;二是效率低;

}

我要回帖

更多关于 c#明显下滑 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信