欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    SQL语句书写规范.docx

    • 资源ID:1406695       资源大小:13.32KB        全文页数:4页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    SQL语句书写规范.docx

    Ibl中col1类型为varchar(10)Select*fromtblwherecoll=2;注:假如col1字段为int类型Select.*fromtblwherecol1=2;可以用到索引4、尽量避开在where子句中对字段运用函数或表达式操作,这将导致引擎放弃索引而运用全表扫描例:select*fromtblwheresubstring(col1,1,4)=1234:不管col1是何种类型的索引都会失效,应改为select*fromtblwherecolllike1234%;5、由上面的问题引申出在查询时运用like的问题。select*fromtblwherecol1like1234%:这种查询方法要比SeIeCt*fromtblwherecol11ike%1234%和select*fromtblwherecolllike%1234这两种方式性能高出4-5倍,因为其次种和第三种方式将无法运用索引。6、避开运用!=或V、ISNU1.1.或ISNOTNU1.1.IN,NOTIN等这样的操作符,因为这会使系统无法运用索引,而只能干脆搜索表中的数据.7、尽量运用数字型字段,把数值信息的字段设计为字符型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接会逐个比较字符串中每一个字符,而对于数字型而言只须要比较一次就够了。8、合理运用EXISTS,NOTEXISTS子句。例:1.Selectsum(tl.cl)fromtlwhere(selectcount(*)fromt2wheret2.c2=tl.cl)O2.Selectsum(tl.cl)fromtlwhereexists(select*fromt2wheret2.c2=tl.cl)两者产生相同的结果,但是后者的效率明显要高于前者。因为后者不会产生大量锁定的表扫描或是索引扫描。9、leftjoinon/rightjoinon;join操作MySQ1.内部采纳了一种叫做nestedloopjoin的算法。Nested1.oopJoin事实上就是通过驱动表的结果集作为循环基础数据,假如运用innerjoin的话MySQ1.会自动地选择小表去驱动大表,而leftjoin会指定由左边的表去驱动右边的表,假如不能确定那个表的结果集更小,就改用innerjoin有MySQ1.自动去选择驱动表。10、orderby假如针对一个字段进行排序操作,尽量运用索引字段假如针对两个字段排序操作,单独对两个字段建索引,。rdcrby无法运用索引,须要对两个字段建立一个联合索引,并且Orderby字句的字段依次要与联合索引中的字段依次保持一样。11、万不要运用OrderbyrandO这个语句。Orderbyrand()Iimill这条吩咐可以满意一个随机取出一条数据的需求,但rand()函数会耗费大量的CPU资源。运用rand()将数据行结果集打乱,会使数据库性能直线下降,可运用其他方式代替。12、Count任何状况下SE1.ECTCOUNT(*)FROMtb是最优选择:尽量削减SE1.ECTCOUNT(*)FROMtbWHEREcol=value这种查询;杜绝SE1.ECTCOUNT(col)FROMtb的出现。在没有where条件出现时CoUntC*)和COUnt(CoI)基本等价,在有Where条件状况下CoUnt_(*)比COUnI(COI)快许多,应为count(*)会自动去找寻主键13、1.imit1.imit运用有两种方式limit10和1imit10,10在表的数据量不大和offset也不大的状况下没有明显差距但是假如是limit10000,10的话这种做法性能会比较差,建议方法先取出第100OO行的id值然后where条件限制从100Ol起先取值limit1014.where子句中避开出现数学运算,因为对字段做数学运算会导致执行索引扫描例:select*fromtblwherecol1/2100可转换成select*fromtblwherecol120015联合索引运用方法1、idx(a,b)wherea=xx/a=xxandb=yy可以用到索引whereb=yy无法用到索引2、idx(a,b,c)能用到索引wherea=xx/a=xxandb=yyandc=zz/a=xxandb=yya=xxandC=ZZ/b,c,a/c,b,a不能用到索引whereb=xx/c=xxb=yyandc=zz一句话=运用联合索引where条件中必须要运用最左侧的索引字段依次无所谓。二、update语句1.尽量避开update主键字段2,尽量避开update索引字段3,尽量避开updatewhere字句中包含的字段4update操作where字句中须要带上索引字段,否则会锁表,导致其他操作锁等待。三、写在最终在写SQ1.语句时尽量依据以上这些原则来实现,能避开许多性能问题,也能为以后的工作削减时间消耗。建表部分一、表名和字段名表名和字段名的命名规则见名知意不要运用保留关键字运用小写并用.分隔如无特别需求建表语句中不要设置存储引擎和字符集二、字段数据类型1、运用ini型的字段作为主键,假如业务上不存在最好设置一个自增的id作为主键2、VarChar(255)中的数字代表字符数而不是字节数,尽量够用就可以不要设置过大,单行的VarChar字节数最大为65535设置过大会使存储空间奢侈3、存储精确浮点数要运用DECIM1.替代F1.oAT和DOUB1.E4、存储时间(精确到秒)建议运用TIMESTAMP类型,因为TlMESTAMP运用4字节,DATETIME运用8个字节5、禁止在数据库中运用VARBINRY.B1.OB存储图片、文件等6、不建议运用ENUM类型,运用TINYTNT来代替7、建议运用UNSIGNED存储非负数值8、字段名不建议运用user,key,keys,type,status等这一类的保留关键字可以加前缀运用。否则每次运用这些字段都要转义9.Int(2)不如替换成tinyint,tinyint可以存储(-255,0)(0,255)的数字,而且tinyint只占用1个字节,int占用4个字节10、非唯一索引的索引名应依据idx_字段名命名11、唯一索引应依据Uniq_字段名命名12、字段名都是用小写(borrowrcpay_record)

    注意事项

    本文(SQL语句书写规范.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开