|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不管怎么样,市场的结果已经证明MySQL具有性价比高、灵活、MySQL学习教程广为使用和具有良好支持的特点。 在数据库的开辟过程当中,常常会碰到庞大的营业逻辑和对数据库的操纵,这个时分就会用SP来封装数据库操纵。假如项目标SP较多,誊写又没有必定的标准,将会影响今后的体系保护坚苦和年夜SP逻辑的难以了解,别的假如数据库的数据量年夜大概项目对SP的功能请求很,就会碰到优化的成绩,不然速率有大概很慢,经由亲自履历,一个经由优化过的SP要比一本性能差的SP的效力乃至高几百倍。
具体内容:
1、开辟职员假如用到其他库的Table或View,务必在以后库中创建View来完成跨库操纵,最好不要间接利用“databse.dbo.table_name”,由于sp_depends不克不及显现出该SP所利用的跨库table或view,不便利校验。
2、开辟职员在提交SP前,必需已利用setshowplanon剖析过查询企图,做过本身的查询优化反省。
3、高程序运转效力,优化使用程序,在SP编写过程当中应当注重以下几点:
(a)SQL的利用标准:
i. 只管制止年夜事件操纵,慎用holdlock子句,进步体系并发才能。
ii. 只管制止重复会见统一张或几张表,特别是数据量较年夜的表,能够思索先依据前提提取数据光临时表中,然后再做毗连。
iii. 只管制止利用游标,由于游标的效力较差,假如游标操纵的数据凌驾1万行,那末就应当改写;假如利用了游标,就要只管制止在游标轮回中再举行表毗连的操纵。
iv. 注重where字句写法,必需思索语句按次,应当依据索引按次、局限巨细来断定前提子句的前后按次,尽量的让字段按次与索引按次相分歧,局限从年夜到小。
v. 不要在where子句中的“=”右边举行函数、算术运算或其他表达式运算,不然体系将大概没法准确利用索引。
vi. 只管利用exists取代selectcount(1)来判别是不是存在纪录,count函数只要在统计表中一切行数时利用,并且count(1)比count(*)更无效率。
vii. 只管利用“>=”,不要利用“>”。
viii. 注重一些or子句和union子句之间的交换
ix. 注重表之间毗连的数据范例,制止分歧范例数据之间的毗连。
x. 注重存储过程当中参数和数据范例的干系。
xi. 注重insert、update操纵的数据量,避免与其他使用抵触。假如数据量凌驾200个数据页面(400k),那末体系将会举行锁晋级,页级锁会晋级成表级锁。
<P>12下一页>全文浏览提醒:尝尝"←→"键,翻页更便利哦!“通过有能力的DBA的一个简单计划,MySQL可以达到令人难以想像的运行速度,”一位资深DBA如此表示。MySQL中没有多余的功能来拖累CPU或占用内存。 |
|