SQL主动审阅-自助上线渠道51CTO博客 - 众发娱乐

SQL主动审阅-自助上线渠道51CTO博客

2019年03月06日14时54分01秒 | 作者: 书兰 | 标签: 审阅,上线,正告 | 浏览: 1599

  • SELECT审阅

  • 1、开发人员能够直接将SQL句子提交到渠道进行危险评价

    2、渠道对SQL句子进行剖析,主动给出其不符合开发标准的改善定见

    3、适用场景:运用开发阶段

    检查项:

    1、select * 是否有必要查询一切的字段?
    2、正告!没有where条件,留意where后边的字段要加上索引
    3、没有limit会查询更多的数据
    4、正告!子查询功用低下,请转为join表相关
    5、提示:in里边的数值不要超越1000个
    6、提示:选用join相关,留意相关字段要都加上索引,如on a.id=b.id
    7、提示:MySQL对多表join相关功用低下,主张不要超越3个表以上的相关
    8、正告!like '%%'双百分号无法用到索引,like 'mysql%'这样是能够利用到索引的
    9、提示:默许情况下,MySQL对一切GROUP BY col1,col2...的字段进行排序。假如查询包含GROUP BY,
    想要防止排序成果的耗费,则能够指定ORDER BY NULL制止排序。
    10、正告!MySQL里用到order by rand()在数据量比较多的时分是很慢的,由于会导致MySQL全表扫描,故也不会用到索引
    11、提示:是否要加一个having过滤下?
    12、正告!制止不必要的order by排序,由于前面现已count计算了
    13、正告!MySQL里不支持函数索引,例DATE_FORMAT('create_time','%Y-%m-%d')='2016-01-01'是无法用到索引的,需求改写为
    create_time>='2016-01-01 00:00:00' and create_time<='2016-01-01 23:59:59'

    之后会调用美团网SQLAdvisor进行索引检查


    运用概述:

  • insert审阅

  • 检查项:

    1、正告: insert 表1 select 表2,会形成锁表。

  • update审阅

  • 检查项:

    1、正告!没有where条件,update会全表更新,制止履行!!!
    2、更新的行数小于10000行,能够由开发自助履行。不然请联络DBA履行!!!

  • create审阅

  • 检查项:

    1、正告!表没有主键
    2、正告!表主键应该是自增的,短少AUTO_INCREMENT
    3、提示:id自增字段默许值为1,auto_increment=1
    4、正告!表没有索引
    5、正告!表中的索引数现已超越5个,索引是一把双刃剑,它能够进步查询功率但也会下降刺进和更新的速度并占用磁盘空间
    6、正告!表字段没有中文注释,COMMENT应该有默许值,如COMMENT '名字'
    7、正告!表没有中文注释
    8、正告!表短少utf8字符集,不然会呈现乱码
    9、正告!表存储引擎应设置为InnoDB
    10、正告!表应该为timestamp类型加默许体系当时时刻

  • alter审阅

  • 检查项:

    1、正告!不支持create index语法,请更改为alter table add index语法。
    2、正告!更改表结构要削减与数据库的交互次数,应改为,例alter table t1 add index IX_uid(uid),add index IX_name(name)
    3、表记载小于100万行,能够由开发自助履行。不然表太大请联络DBA履行!

    工单查询.png


    -

    装置布置,脚本代码:

    http://dbaplus.cn/news-155-1944-1.html


    东西下载更新:
    链接-https://pan.baidu.com/s/1eUct4Bo
    1、修正了一些子查询的bug。
    2、主页不必手艺写库了,直接从dbinfo表里获取。
    3、添加一个导航栏,超链接到工单查询。

    添加主键字段名有必要是id

    修正sql_review.php

    添加如下代码:

    if(!preg_match('/.*\bid\b.*int.*/',$multi_sql[$x])){
        echo "<big><font color=\"#FF0000\">正告!$parmArr[2]表主键字段名有必要是id。</font></big></br>";
        $c++;
    }


    2018-03-26更新

    1、添加了用户登录页面
    2、提交SQL时多了一次承认弹窗


    多添加
    1、login_user.sql  用户登录验证表

    注:
    客户端版别运用mysql5.5或许mariadb10.X。
    5.6会呈现Warning: Using a password on the command line interface can be insecure,导致上线失利。


    脚本解说
    1、index.html(用户登录进口)
    2、login.php(用户暗码校验)

    https://pan.baidu.com/s/1TPNIEFp5-mpz3a1mGUsawg


    -

    2018-04-12更新

    1、添加上线计算页面
    2、添加规矩
    (1、主键有必要是id
      2、用DECIMAL替代FLOAT和DOUBLE存储准确浮点数
      3、应运用默许的字符>集核对utf8_general_ci
      4、防止运用外键)

    https://pan.baidu.com/s/1KKw9aMWa-9Q_8efaiQndMQ

    -

    2018-04-27更新

    1、添加人工承认审阅功用
    上线流程为:开发提交SQL,体系主动审阅(sql_review.php),审阅经往后生成我的工单待管理员批复,管理员人工承认审阅经往后,开发点击履行完结上线。


    1、login_user.sql  用户登录验证表(权限功用)
    2、sql_order_wait.sql  工单待审阅生成表
    3、dbinfo.sql(DB装备信息表)


    脚本解说
    1、index.html(用户登录进口)
    2、login.php(用户暗码校验)
    3、main.php(主页结构栏)
    4、header.php(用户登录欢迎页面,和刊出)
    5、left.php(导航栏)
    6、sql_interface.php(SQL传参进口)
    7、sql_review.php(SQL审阅)
    8、my_order.php(检查我的工单,履行,吊销)
    9、wait_order.php(管理员人工批复:经过,否决)
    10、update.php(管理员批阅承认)
    11、update_status.php(修正批阅状况值)
    12、execute.php(开发履行SQL工单)
    13、execute_status.php(修正履行工单状况)
    14、cancel.php(开发自行吊销工单)
    15、cancel_status.php(修正吊销工单状况)
    16、stat/show.html(工单动态计算图表)
    17、db_config.php(DB装备信息的IP、端口、用户名、暗码、库名)
    18、sqladvisor_config.php(拜访SQLAdvisor服务器的IP、SSH端口、SSH用户名、SSH暗码)

    -
    注:
    1、客户端版别运用mysql5.5或许mariadb10.X。
    5.6会呈现Warning: Using a password on the command line interface can be insecure,导致上线失利。

    2、php文件里的触及衔接数据库的用户名和暗码要修正,这块没有做成一致个DB装备文件调用。

    https://pan.baidu.com/s/194zXrat-GLJa0AZu2KxebQ


     -

    2018-05-04更新

    1、添加发邮件给管理员审阅SQL工单功用
    上线流程为:开发提交SQL,体系主动审阅(sql_review.php),审阅经往后生成我的工单待管理员批复而且发邮件告诉,管理员人工承认审阅经往后,开发点击履行完结上线。

    脚本解说
    1、mail/mail.php(邮件装备信息修正你自己的邮箱用户名和暗码)
    2、mail/sendEmail(开源邮件perl脚本)
    3、sql_review.php(触发发送邮件-覆盖掉之前的旧文件)

    https://pan.baidu.com/s/1abduiOMV8UguxfHCfBw5sg


    10.26日更新

    添加一键生成反向SQL回滚功用。

    https://pan.baidu.com/s/1eUct4Bo

    https://github.com/hcymysql/sqlops



    版权声明
    本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

    猜您喜欢的文章