纪念我人生中第一个merge into语句

做按组织关系汇总功能时,当数据量特别大,或者汇总组织特别多时,运行效率特别低,于是使用了merge into语句。

代码如下:

public void updateInsertData(DataSet dsl, String mxnm, DataSet dsc, DataSet dsr, String faslnm, DataSet dyxjDs, String thisBbnm, String tabname, DataSet glDs,String flnm,String dyzzNm,int hzbbStat){
        //using后的sql
        String queryDataSql = queryData(dsl, mxnm, dsc, dsr, faslnm, dyxjDs, thisBbnm, tabname, glDs);

        StringBuffer updateInsertSql = new StringBuffer();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
        String createdTime = formatter.format(new Date());
        String lastmodifiedTime = formatter.format(new Date());
        String creator = GetBspInfo.getBspInfo().getUserId();
        updateInsertSql.append("MERGE INTO FCDATA_"+mxnm +" DA ");
        updateInsertSql.append("USING ("+queryDataSql + ") QU ");
        updateInsertSql.append("ON (");

        for (int y = 0; y < dsl.getCount(); y++) {
            String wdmc = (String) dsl.getRecord(y).get("FCYSYS_BS");
            if(!("ZZ".equals(wdmc))) {
                updateInsertSql.append("DA.FC_" + wdmc + "_NM = QU.FC_" + wdmc + "_NM AND ");
            }
        }

        updateInsertSql.append(" DA.FC_ZZ_NM=‘" +dyzzNm+"‘ )");
        updateInsertSql.append("WHEN MATCHED THEN ");
        updateInsertSql.append("UPDATE SET DA.FC_QJS = ROUND(QU.FC_QJS,QU.FCBZL_DECN),");
        updateInsertSql.append("DA.FC_LJS = ROUND(QU.FC_LJS,QU.FCBZL_DECN),DA.FC_NDS = ROUND(QU.FC_NDS,QU.FCBZL_DECN),");
        updateInsertSql.append("DA.FC_LJS_C = ROUND(QU.FC_LJS_C,QU.FCBZL_DECN),DA.FC_NDS_C = ROUND(QU.FC_NDS_C,QU.FCBZL_DECN),");
        updateInsertSql.append("DA.FC_QJS_C = ROUND(QU.FC_QJS_C,QU.FCBZL_DECN),DA.FC_NDS_1 = ROUND(QU.FC_NDS_1,QU.FCBZL_DECN),");
        updateInsertSql.append("DA.FC_LJS_1 = ROUND(QU.FC_LJS_1,QU.FCBZL_DECN),DA.FC_QJS_1 = ROUND(QU.FC_QJS_1,QU.FCBZL_DECN),");
        updateInsertSql.append("FC_SJLY=‘2‘,FC_HZLBNM=‘" + flnm + "‘,LASTMODIFIER=‘" + creator + "‘,LASTMODIFIEDTIME=");
        updateInsertSql.append("(select to_date(‘").append(lastmodifiedTime).append("‘,‘YYYY-MM-DD HH24:MI:SS‘)from dual) ");
        updateInsertSql.append("WHEN NOT MATCHED THEN INSERT(");
        updateInsertSql.append("FC_ZZ_NM,FC_MXNM,FC_DANM,FC_BBDY,FC_LCST,");
        for (int w = 0; w < dsl.getCount(); w++) {
            String wdmc = (String) dsl.getRecord(w).get("FCYSYS_BS");
            if (!("ZZ".equals(wdmc))) {
                updateInsertSql.append("FC_" + wdmc + "_NM,");
            }
        }
        updateInsertSql.append("FC_QJS,FC_NDS,FC_LJS,FC_QJS_C,FC_NDS_C,FC_LJS_C,FC_QJS_1,FC_NDS_1,FC_LJS_1,");
        updateInsertSql.append("FC_SJLY,FC_HZLBNM,CREATOR,LASTMODIFIER,CREATEDTIME,LASTMODIFIEDTIME) ");
        updateInsertSql.append(" VALUES( ‘" + dyzzNm + "‘,‘" + mxnm + "‘,substr(sys_guid(),0,4)||sys_guid(),‘" + thisBbnm + "‘,‘");
        updateInsertSql.append(hzbbStat + "‘,");
        for (int w = 0; w < dsl.getCount(); w++) {
            String wdmc = (String) dsl.getRecord(w).get("FCYSYS_BS");
            if (!("ZZ".equals(wdmc))) {
                updateInsertSql.append("QU.FC_" + wdmc + "_NM,");
            }
        }

        updateInsertSql.append("ROUND(QU.FC_QJS,QU.FCBZL_DECN),ROUND(QU.FC_NDS,QU.FCBZL_DECN),ROUND(QU.FC_LJS,QU.FCBZL_DECN),");
        updateInsertSql.append("ROUND(QU.FC_QJS_C,QU.FCBZL_DECN),ROUND(QU.FC_NDS_C,QU.FCBZL_DECN),ROUND(QU.FC_LJS_C,QU.FCBZL_DECN),");
        updateInsertSql.append("ROUND(QU.FC_QJS_1,QU.FCBZL_DECN),ROUND(QU.FC_NDS_1,QU.FCBZL_DECN),ROUND(QU.FC_LJS_1,QU.FCBZL_DECN),‘");
        updateInsertSql.append("2‘,‘" + flnm + "‘,‘");
        updateInsertSql.append(creator + "‘,‘" + creator + "‘,");
        updateInsertSql.append("(select to_date(‘").append(createdTime).append("‘,‘YYYY-MM-DD HH24:MI:SS‘)from dual),");
        updateInsertSql.append("(select to_date(‘").append(lastmodifiedTime).append("‘,‘YYYY-MM-DD HH24:MI:SS‘)from dual) )");

        this.executeUpdate(updateInsertSql.toString());
        /********************merge into结束!!!!*************************/
    }
public String queryData(DataSet dsl, String mxnm, DataSet dsc, DataSet dsr, String faslnm, DataSet dyxjDs, String thisBbnm, String tabname, DataSet glDs) {
        boolean ifzb = false;//数据列中是否存在指标这个维度
        for (int s = 0; s < dsc.getCount(); s++) {
            String sjmc = (String) dsc.getRecord(s).get("FCYSYS_BS");
            if (!("ZB".equals(sjmc))) {
                ifzb = false;
            } else {
                ifzb = true;
                break;
            }
        }

        //查询出下级组织报表的所有单元格数据,便于下面判断该数据是否在上级组织中有记录
        StringBuffer sqlh = new StringBuffer(200);
        sqlh.append(" SELECT FCBZL_DECN,");
        for (int w = 0; w < dsl.getCount(); w++) {
            String wdmc = (String) dsl.getRecord(w).get("FCYSYS_BS");
            if (!("ZZ".equals(wdmc))) {
                sqlh.append("FC_" + wdmc + "_NM,");
            }
        }
        if (ifzb) {
            sqlh.append(" CASE WHEN YSYSXM_XMXZ=‘2‘ OR YSYSXM_XMXZ=‘3‘ THEN MAX(FC_QJS)");
            sqlh.append(" ELSE SUM(NVL(FC_QJS, 0) * FCFLYS_BL) END AS FC_QJS, ");
            sqlh.append(" CASE WHEN YSYSXM_XMXZ=‘2‘ OR YSYSXM_XMXZ=‘3‘ THEN MAX(FC_NDS)");
            sqlh.append(" ELSE SUM(NVL(FC_NDS, 0) * FCFLYS_BL) END AS FC_NDS, ");
            sqlh.append(" CASE WHEN YSYSXM_XMXZ=‘2‘ OR YSYSXM_XMXZ=‘3‘ THEN MAX(FC_LJS)");
            sqlh.append(" ELSE SUM(NVL(FC_LJS, 0) * FCFLYS_BL) END AS FC_LJS, ");
            sqlh.append(" CASE WHEN YSYSXM_XMXZ=‘2‘ OR YSYSXM_XMXZ=‘3‘ THEN MAX(FC_QJS_C)");
            sqlh.append(" ELSE SUM(NVL(FC_QJS_C, 0) * FCFLYS_BL) END AS FC_QJS_C, ");
            sqlh.append(" CASE WHEN YSYSXM_XMXZ=‘2‘ OR YSYSXM_XMXZ=‘3‘ THEN MAX(FC_NDS_C)");
            sqlh.append(" ELSE SUM(NVL(FC_NDS_C, 0) * FCFLYS_BL) END AS FC_NDS_C, ");
            sqlh.append(" CASE WHEN YSYSXM_XMXZ=‘2‘ OR YSYSXM_XMXZ=‘3‘ THEN MAX(FC_LJS_C)");
            sqlh.append(" ELSE SUM(NVL(FC_LJS_C, 0) * FCFLYS_BL) END AS FC_LJS_C, ");
            sqlh.append(" CASE WHEN YSYSXM_XMXZ=‘2‘ OR YSYSXM_XMXZ=‘3‘ THEN MAX(FC_QJS_1)");
            sqlh.append(" ELSE SUM(NVL(FC_QJS_1, 0) * FCFLYS_BL) END AS FC_QJS_1, ");
            sqlh.append(" CASE WHEN YSYSXM_XMXZ=‘2‘ OR YSYSXM_XMXZ=‘3‘ THEN MAX(FC_NDS_1)");
            sqlh.append(" ELSE SUM(NVL(FC_NDS_1, 0) * FCFLYS_BL) END AS FC_NDS_1, ");
            sqlh.append(" CASE WHEN YSYSXM_XMXZ=‘2‘ OR YSYSXM_XMXZ=‘3‘ THEN MAX(FC_LJS_1)");
            sqlh.append(" ELSE SUM(NVL(FC_LJS_1, 0) * FCFLYS_BL) END AS FC_LJS_1");
        } else {
            sqlh.append("SUM(NVL(FC_QJS,0)*FCFLYS_BL) AS FC_QJS,SUM(NVL(FC_NDS,0)*FCFLYS_BL) AS FC_NDS,SUM(NVL(FC_LJS,0)*FCFLYS_BL) AS FC_LJS,");
            sqlh.append("SUM(NVL(FC_QJS_1,0)*FCFLYS_BL) AS FC_QJS_1,SUM(NVL(FC_NDS_1,0)*FCFLYS_BL) AS FC_NDS_1,");
            sqlh.append("SUM(NVL(FC_LJS_1,0)*FCFLYS_BL) AS FC_LJS_1,SUM(NVL(FC_QJS_C,0)*FCFLYS_BL) AS FC_QJS_C,SUM(NVL(FC_NDS_C,0)*FCFLYS_BL) AS FC_NDS_C,SUM(NVL(FC_LJS_C,0)*FCFLYS_BL) AS FC_LJS_C");
        }

        sqlh.append(" FROM FCDATA_" + mxnm);

                /*本来是join fcbzh,但是后来调整为只汇总固定行,而fcirow里存的都是固定行,所以改为join fcirow*/
        sqlh.append(" JOIN FCBZH_" + mxnm + " ON ");
        //sqlh.append(" JOIN FCIROW ON ");

        for (int x = 0; x < dsr.getCount(); x++) {
            String xxmc = (String) dsr.getRecord(x).get("FCYSYS_BS");
            if (!("ZZ".equals(xxmc))) {

                sqlh.append(" FC_" + xxmc + "_NM = FCBZH_" + xxmc + "NM AND ");
                //sqlh.append(" FC_" + xxmc + "_NM = FCIROW_" + xxmc + " AND ");

            }
        }
        sqlh.append(" FC_ZZ_NM = FCBZH_ZZNM AND ");
        sqlh.append(" 1=1 JOIN FCBZL_" + mxnm + " ON ");
        for (int s = 0; s < dsc.getCount(); s++) {
            String sjmc = (String) dsc.getRecord(s).get("FCYSYS_BS");
            if (!("ZB".equals(sjmc))) {
                sqlh.append(" FC_" + sjmc + "_NM = FCBZL_" + sjmc + " AND ");
            } else {
                sqlh.append(" FC_" + sjmc + "_NM = FCBZL_" + sjmc + " AND ");
            }
        }
        sqlh.append(" 1=1 ");
        //指标这个维度数据结构不同,单独处理
        if (ifzb) {
            sqlh.append(" JOIN YSYSXM ON YSYSXM_XMUID = FC_ZB_NM ");
        }
        sqlh.append(" JOIN " + tabname + " ON FCFLYS_SJNM = FC_ZZ_NM ");
        /*sqlh.append(" JOIN FCBBRW ON FCBBRW_ZZ=FC_ZZ_NM WHERE FC_BBDY = ‘" + thisBbnm + "‘ ");*/
        //两张表同一个模型内码,但有一个归口表
        sqlh.append(" JOIN FCBBRW ON FCBBRW_ZZ=FC_ZZ_NM AND FCBBRW_BBNM=FC_BBDY WHERE 1=1");
        /*sqlh.append(" JOIN FCBBRW ON FCBBRW_ZZ=FC_ZZ_NM WHERE 1=1");*/
        sqlh.append(" AND FCBZL_IFBL=‘0‘ AND FCBZH_SLNM=‘" + faslnm + "‘ AND FCBZL_SLNM=‘" + faslnm + "‘ AND FCBZL_DYNM=‘" + thisBbnm + "‘ AND FCBZH_DYNM=‘" + thisBbnm + "‘");
        sqlh.append(" AND FCBBRW_SLNM=‘" + faslnm + "‘ AND FCBBRW_BBNM =‘" + thisBbnm + "‘ ");
        if (glDs.getCount() > 2) {
            sqlh.append(" AND FCBBRW_IFGL=‘1‘ ");
        }
        sqlh.append(" AND FC_ZZ_NM IN (");
        //下级组织范围条件
        for (int zz = 0; zz < dyxjDs.getCount(); zz++) {
            String xjzznm = (String) dyxjDs.getRecord(zz).get("ZZNM");
            if (zz == dyxjDs.getCount() - 1) {
                sqlh.append("‘" + xjzznm + "‘)");
            } else {
                sqlh.append("‘" + xjzznm + "‘,");
            }
        }
        sqlh.append(" AND FCBZH_ZZNM IN (");
        //下级组织范围条件
        for (int zz = 0; zz < dyxjDs.getCount(); zz++) {
            String xjzznm = (String) dyxjDs.getRecord(zz).get("ZZNM");
            if (zz == dyxjDs.getCount() - 1) {
                sqlh.append("‘" + xjzznm + "‘)");
            } else {
                sqlh.append("‘" + xjzznm + "‘,");
            }
        }
        sqlh.append(" GROUP BY ");
        if (ifzb) {
            sqlh.append(" YSYSXM_XMXZ,");
        }
        for (int y = 0; y < dsl.getCount(); y++) {
            String wdmc = (String) dsl.getRecord(y).get("FCYSYS_BS");
            if (!("ZZ".equals(wdmc))) {
                sqlh.append("FC_" + wdmc + "_NM,");
            }
        }
        sqlh.append("FCBZL_DECN");
        return sqlh.toString();
    }

运行处的sql语句如下:

MERGE INTO FCDATA_XS04 DA
USING (SELECT FCBZL_DECN,
              FC_QYXM_NM,
              FC_MB_NM,
              FC_ZB_NM,
              FC_LX_NM,
              FC_QJ_NM,
              CASE
                WHEN YSYSXM_XMXZ = ‘2‘ OR YSYSXM_XMXZ = ‘3‘ THEN
                 MAX(FC_QJS)
                ELSE
                 SUM(NVL(FC_QJS, 0) * FCFLYS_BL)
              END AS FC_QJS,
              CASE
                WHEN YSYSXM_XMXZ = ‘2‘ OR YSYSXM_XMXZ = ‘3‘ THEN
                 MAX(FC_NDS)
                ELSE
                 SUM(NVL(FC_NDS, 0) * FCFLYS_BL)
              END AS FC_NDS,
              CASE
                WHEN YSYSXM_XMXZ = ‘2‘ OR YSYSXM_XMXZ = ‘3‘ THEN
                 MAX(FC_LJS)
                ELSE
                 SUM(NVL(FC_LJS, 0) * FCFLYS_BL)
              END AS FC_LJS,
              CASE
                WHEN YSYSXM_XMXZ = ‘2‘ OR YSYSXM_XMXZ = ‘3‘ THEN
                 MAX(FC_QJS_C)
                ELSE
                 SUM(NVL(FC_QJS_C, 0) * FCFLYS_BL)
              END AS FC_QJS_C,
              CASE
                WHEN YSYSXM_XMXZ = ‘2‘ OR YSYSXM_XMXZ = ‘3‘ THEN
                 MAX(FC_NDS_C)
                ELSE
                 SUM(NVL(FC_NDS_C, 0) * FCFLYS_BL)
              END AS FC_NDS_C,
              CASE
                WHEN YSYSXM_XMXZ = ‘2‘ OR YSYSXM_XMXZ = ‘3‘ THEN
                 MAX(FC_LJS_C)
                ELSE
                 SUM(NVL(FC_LJS_C, 0) * FCFLYS_BL)
              END AS FC_LJS_C,
              CASE
                WHEN YSYSXM_XMXZ = ‘2‘ OR YSYSXM_XMXZ = ‘3‘ THEN
                 MAX(FC_QJS_1)
                ELSE
                 SUM(NVL(FC_QJS_1, 0) * FCFLYS_BL)
              END AS FC_QJS_1,
              CASE
                WHEN YSYSXM_XMXZ = ‘2‘ OR YSYSXM_XMXZ = ‘3‘ THEN
                 MAX(FC_NDS_1)
                ELSE
                 SUM(NVL(FC_NDS_1, 0) * FCFLYS_BL)
              END AS FC_NDS_1,
              CASE
                WHEN YSYSXM_XMXZ = ‘2‘ OR YSYSXM_XMXZ = ‘3‘ THEN
                 MAX(FC_LJS_1)
                ELSE
                 SUM(NVL(FC_LJS_1, 0) * FCFLYS_BL)
              END AS FC_LJS_1
         FROM FCDATA_XS04
         JOIN FCBZH_XS04 ON FC_QYXM_NM = FCBZH_QYXMNM
                        AND FC_ZZ_NM = FCBZH_ZZNM
                        AND 1 = 1
         JOIN FCBZL_XS04 ON FC_MB_NM = FCBZL_MB
                        AND FC_QJ_NM = FCBZL_QJ
                        AND FC_ZB_NM = FCBZL_ZB
                        AND FC_LX_NM = FCBZL_LX
                        AND 1 = 1
         JOIN YSYSXM ON YSYSXM_XMUID = FC_ZB_NM
         JOIN FCFLYS_ZZHZ ON FCFLYS_SJNM = FC_ZZ_NM
         JOIN FCBBRW ON FCBBRW_ZZ = FC_ZZ_NM
                    AND FCBBRW_BBNM = FC_BBDY
        WHERE 1 = 1
          AND FCBZL_IFBL = ‘0‘
          AND FCBZH_SLNM = ‘f4f10134-ca32-4329-88fa-1e2e5ab5c47e‘
          AND FCBZL_SLNM = ‘f4f10134-ca32-4329-88fa-1e2e5ab5c47e‘
          AND FCBZL_DYNM = ‘262ff333-8e40-47ec-8753-b18a4fac9331‘
          AND FCBZH_DYNM = ‘262ff333-8e40-47ec-8753-b18a4fac9331‘
          AND FCBBRW_SLNM = ‘f4f10134-ca32-4329-88fa-1e2e5ab5c47e‘
          AND FCBBRW_BBNM = ‘262ff333-8e40-47ec-8753-b18a4fac9331‘
          AND FC_ZZ_NM IN (‘a0f8f16c-fa4e-4bf5-bb74-d9b5f9ac8640‘,
               ‘1c42551c-3749-48ec-b2a5-7cdac85f3915‘)
          AND FCBZH_ZZNM IN (‘a0f8f16c-fa4e-4bf5-bb74-d9b5f9ac8640‘,
               ‘1c42551c-3749-48ec-b2a5-7cdac85f3915‘)
        GROUP BY YSYSXM_XMXZ,
                 FC_QYXM_NM,
                 FC_MB_NM,
                 FC_ZB_NM,
                 FC_LX_NM,
                 FC_QJ_NM,
                 FCBZL_DECN) QU
ON (DA.FC_QYXM_NM = QU.FC_QYXM_NM AND DA.FC_MB_NM = QU.FC_MB_NM AND DA.FC_ZB_NM = QU.FC_ZB_NM AND DA.FC_LX_NM = QU.FC_LX_NM AND DA.FC_QJ_NM = QU.FC_QJ_NM AND DA.FC_ZZ_NM = ‘f9b6a300-534c-49f0-9aca-63b5a4caf8d8‘)
WHEN MATCHED THEN
  UPDATE
     SET DA.FC_QJS        = ROUND(QU.FC_QJS, QU.FCBZL_DECN),
         DA.FC_LJS        = ROUND(QU.FC_LJS, QU.FCBZL_DECN),
         DA.FC_NDS        = ROUND(QU.FC_NDS, QU.FCBZL_DECN),
         DA.FC_LJS_C      = ROUND(QU.FC_LJS_C, QU.FCBZL_DECN),
         DA.FC_NDS_C      = ROUND(QU.FC_NDS_C, QU.FCBZL_DECN),
         DA.FC_QJS_C      = ROUND(QU.FC_QJS_C, QU.FCBZL_DECN),
         DA.FC_NDS_1      = ROUND(QU.FC_NDS_1, QU.FCBZL_DECN),
         DA.FC_LJS_1      = ROUND(QU.FC_LJS_1, QU.FCBZL_DECN),
         DA.FC_QJS_1      = ROUND(QU.FC_QJS_1, QU.FCBZL_DECN),
         FC_SJLY          = ‘2‘,
         FC_HZLBNM        = ‘fc302219-8a8b-484a-a9ff-2292a19606e3‘,
         LASTMODIFIER     = ‘LYX‘,
         LASTMODIFIEDTIME = (select to_date(‘2017-07-21 14:06:01 ‘,
                                            ‘YYYY-MM-DD HH24:MI:SS‘)
                               from dual)
WHEN NOT MATCHED THEN
  INSERT
    (FC_ZZ_NM,
     FC_MXNM,
     FC_DANM,
     FC_BBDY,
     FC_LCST,
     FC_QYXM_NM,
     FC_MB_NM,
     FC_ZB_NM,
     FC_LX_NM,
     FC_QJ_NM,
     FC_QJS,
     FC_NDS,
     FC_LJS,
     FC_QJS_C,
     FC_NDS_C,
     FC_LJS_C,
     FC_QJS_1,
     FC_NDS_1,
     FC_LJS_1,
     FC_SJLY,
     FC_HZLBNM,
     CREATOR,
     LASTMODIFIER,
     CREATEDTIME,
     LASTMODIFIEDTIME)
  VALUES
    (‘f9b6a300-534c-49f0-9aca-63b5a4caf8d8‘,
     ‘XS04‘,
     substr(sys_guid(), 0, 4) || sys_guid(),
     ‘262ff333-8e40-47ec-8753-b18a4fac9331‘,
     ‘1‘,
     QU.FC_QYXM_NM,
     QU.FC_MB_NM,
     QU.FC_ZB_NM,
     QU.FC_LX_NM,
     QU.FC_QJ_NM,
     ROUND(QU.FC_QJS, QU.FCBZL_DECN),
     ROUND(QU.FC_NDS, QU.FCBZL_DECN),
     ROUND(QU.FC_LJS, QU.FCBZL_DECN),
     ROUND(QU.FC_QJS_C, QU.FCBZL_DECN),
     ROUND(QU.FC_NDS_C, QU.FCBZL_DECN),
     ROUND(QU.FC_LJS_C, QU.FCBZL_DECN),
     ROUND(QU.FC_QJS_1, QU.FCBZL_DECN),
     ROUND(QU.FC_NDS_1, QU.FCBZL_DECN),
     ROUND(QU.FC_LJS_1, QU.FCBZL_DECN),
     ‘2‘,
     ‘fc302219-8a8b-484a-a9ff-2292a19606e3‘,
     ‘LYX‘,
     ‘LYX‘,
     (select to_date(‘2017-07-21 14:06:01 ‘, ‘YYYY-MM-DD HH24:MI:SS‘)
        from dual),
     (select to_date(‘2017-07-21 14:06:01 ‘, ‘YYYY-MM-DD HH24:MI:SS‘)
        from dual))

其实merge into语句的语法概括起来如下:

MERGE INTO table_name t1
USING (table|view|sub_query) t2
ON (join condition)
WHEN MATCHED THEN
    UPDATE table_name
    SET col1 = col_val1,
col2 = col_val2
WHEN NOT MATCHED THEN
    INSERT (column_list) VALUES (column_values);

时间: 2024-10-10 07:22:34

纪念我人生中第一个merge into语句的相关文章

如何查找MySQL中查询慢的SQL语句

本文导读:如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_

你人生中的那口井....[转]

夜已深,人虽然非常疲惫,但是却无睡意,微信上的一篇文章”用下班的时间挖一口属于自己的井,省的老了没有水喝”让我无法入眠. 这篇文章的内容如下: 有两个和尚住在隔壁,每天都会在同一时间下山去溪边挑水,不知不觉己经过了五年. 突然有一天,左边这座山的和尚没有下山挑水,过了一个星期,还是没有下山挑水. 直到过了一个月,右边那座山的和尚很担心就去探望他,当他看到他的老友之后,大吃一惊!因为他的老友,正在庙前打太极拳,一点也不像一个月没喝水的人. 他好奇地问:“你已经一个月没有下山挑水了,难道你可以不用喝

职业生涯手记——记人生中第一次经历的产品上线——内测篇Day1

2017/08/11 产品内测期Day1 公司经过这几天的各种讨论会,终于订出了一个产品上线前内测活动方案,然后今天还算是顺利启动了,也可以算是可喜可贺: 临下班前,今天已经有79人申请内测,其中25人成功安装了APP. 作为我个人来讲,还真是人生中第一次参与内测,很难得的经历:而且公司里的高层和中层们以前都是做项目类型的,几乎都没有APP内测的经历呢. 今天一整天客服组的妹纸们真是忙,我就没见过她们站起来活动,甚至是喝水和上厕所,一定都在与内测用户解答问题呢.路过她们电脑前看到与用户的聊天记录

人生中十个重要的健康伴侣

伴侣一:菠菜不贫血:菠菜中富含铁,铁是人体造血原料之一,是女性经期时的好食品.经常吃菠菜的人面色红润.光彩照人,可远离缺铁性贫血. 体质强:菠菜中含有可观的蛋白质,可帮助身体发育,精力旺盛. 皮肤好:维生素K,这是很多蔬菜水果中缺乏的.人的头发光亮,皮肤白净有光泽,不仅需要维生素A.B.C,也少不了维生素K. 排毒:菠菜可以清理人体肠胃里的热毒,避免便秘,保持排泄的通畅.且菠菜的热量很低,常吃也不用担心发胖. 保护视力:我们知道缺乏维生素A会导致眼睛干涩.看东西"模糊".菠菜中的胡萝卜

肯威尔伯|人生中的阴影

人生中的阴影-----选自:<生活就像练习>[美]肯·威尔伯著 每个人都熟悉“身心灵”这个概念,但ILP在其中加入了“阴影”的概念,并把它视为所有真正的整合式练习的核心元素.身体.心智.灵性和阴影,是练习所要求包含的底限,否则转化过程将很难持续,这个原因目前尚不为人所知.而我们首次提出阴影的概念,则是因为其他方法都严重忽略阴影. “阴影”一词指心理的“黑暗面”——我们分割.拒绝.否认.隐藏的部分,我们投射到他人身上的部分,或者与之断绝关系的部分.在心理治疗的语言中,阴影是“被压抑的无意识”,我

人生中该放弃的八样东西

人生中该放弃的八样东西 有人说,人生之难胜过逆水行舟,人的这一辈子在世,不如意的事情占十之八九,拥有和舍弃的矛盾常常困扰着我们…人生中会有许多的东西值得留恋,也有很多东西你应该学会去放弃. 1.放下压力——累与不累,取决于自己的心态 心灵的房间,不打扫就会落满灰尘.蒙尘的心,会变得灰色和迷茫.我们每天都要经历很多事情,开心的,不开心的,都在心里安家落户.心里的事情一多,就会变得杂乱无序,然后心也跟着乱起来.有些痛苦的情绪和不愉快的记忆,如果充斥在心里,就会使人委靡不振.所以,扫地除尘,能够使黯然

你人生中的那口井挖了没有?

夜已深,人虽然非常疲惫,但是却无睡意,微信上的一篇文章”用下班的时间挖一口属于自己的井,省的老了没有水喝”让我无法入眠. 这篇文章的内容如下: 有两个和尚住在隔壁,每天都会在同一时间下山去溪边挑水,不知不觉己经过了五年. 突然有一天,左边这座山的和尚没有下山挑水,过了一个星期,还是没有下山挑水. 直到过了一个月,右边那座山的和尚很担心就去探望他,当他看到他的老友之后,大吃一惊!因为他的老友,正在庙前打太极拳,一点也不像一个月没喝水的人. 他好奇地问:“你已经一个月没有下山挑水了,难道你可以不用喝

人生中处处都是创业经商,若不是,那代表着还没找到商业的秘密

为什么说经商而不是创业呢,我觉得创业这个词用得有点不恰当,创业代表着一个暂新的事业,因此还是说经商较为准确. 很多热血青年认为创业or经商是他们一个重大的人生决定,其实不然,经商无处不在,每个人每天都在经商,不是吗?你只要购买或交易就是一种经商. 一般人认为只要有实体店或工商注册才是象征着创业的一个身份代表,其实大众这样认为也没错,但也错了,错就错在一个观念的错误,什么观念呢?认识问题总是在一个起点上,而不是一个生态系统的认识创业的主客观过程的行为. 很多创业者认为,创业就是至死地而后生的过程,

谢谢人生中时时刻刻点醒我的人

谢谢人生中时时刻刻点醒我的人,这让我很感激你,也让我看清了你.谢谢人生中给予我帮助的人,谢谢你们,在我最需要你的时候,让我意识到你们的重要性.谢谢永远鼓励我的人,感激你们让我愈发坚强.意识到一些事情,也许是一个人走向成熟的标志吧.你的经历会让你成为一个更加精致的人.世界上什么人都会有,没有必要因为一件小事情而扰乱自己的本心.你真,自然会有人懂你的真,不懂得人我会明白,也许你不适合我,那就走远或者是虚伪的面对你.这是你自己的选择.