mysql数据库的数据怎么分析

mysql数据库的数据怎么分析,第1张

千万级数据统计而已。

每天写表写两份。一张现有的总表,一张每天的临时表,每天定时清空。

统计的数据,可以写成一张统计表。在页面点击查询的时候,查的就是这张统计表。

CREATE TABLE person (

    name  varchar(20)

)

INSERT INTO person VALUES ('a,b,c')

INSERT INTO person VALUES ('a,b')

INSERT INTO person VALUES ('a,c')

DELIMITER //

DROP FUNCTION GetTextCount //

/**********

-- 获取字符串中有几个部分.

**********/

CREATE FUNCTION GetTextCount(pSourceText  VARCHAR(255),  pDivChar  CHAR(1))

RETURNS TINYINT

BEGIN

-- 预期结果

DECLARE vResult TINYINT

-- 当前逗号位置.

DECLARE vIndex INT

-- 前一个逗号的位置.

DECLARE vPrevIndex INT

-- 结果的初始值.

SET vResult = 1

-- 查询第一个 逗号的位置.

SET vIndex = INSTR(pSourceText, pDivChar)

IF vIndex = 0 THEN

-- 参数中没有逗号,直接返回.

RETURN vResult

END IF

-- 初始化情况,前一个逗号不存在.

SET vPrevIndex = 0

-- 循环处理。

WHILE vIndex > 0 DO

-- 结果递增.

SET vResult = vResult + 1

-- 前一个逗号的位置 = 当前逗号的位置

SET vPrevIndex = vIndex

-- 查询下一个逗号的位置.

SET vIndex = LOCATE(pDivChar,  pSourceText,  vPrevIndex + 1)

END WHILE

-- 返回结果.

RETURN vResult

END

//

DROP FUNCTION GetTextValue //

/**********

-- 获取字符串中具体某一个部分的数据.

**********/

CREATE FUNCTION GetTextValue(pSourceText  VARCHAR(255),  pDivChar  CHAR(1), pIndex  TINYINT)

RETURNS VARCHAR(255) 

BEGIN

-- 预期结果. 

DECLARE vResult VARCHAR(255)

IF pIndex = 1 THEN

SELECT SUBSTRING_INDEX(pSourceText,  pDivChar,  1)  INTO  vResult

ELSE

SELECT 

REPLACE(

SUBSTRING_INDEX(pSourceText,  pDivChar,  pIndex),

CONCAT(SUBSTRING_INDEX(pSourceText,  pDivChar,  pIndex - 1) , pDivChar),

'') INTO  vResult

END IF

-- 返回.

RETURN vResult

END

//

DELIMITER 

SELECT

GetTextValue(t.name, ',', MaxNum.No) AS `名称`,

    COUNT(*) AS `个数`

FROM

person t,

(SELECT 1 No UNION ALL

 SELECT 2 No UNION ALL

 SELECT 3 No UNION ALL

 SELECT 4 No UNION ALL

 SELECT 5 No ) MaxNum

WHERE

GetTextCount(t.name, ',') >= MaxNum.No

GROUP BY

    GetTextValue(t.name, ',', MaxNum.No)

+------+------+

| 名称 | 个数 |

+------+------+

| a    |    3 |

| b    |    2 |

| c    |    2 |

+------+------+

3 rows in set (0.01 sec)

?Show

status

?一些值得监控的变量值:

?Bytes_received和Bytes_sent

?和服务器之间来往的流量。

?Com_*服务器正在执行的命令。

?Created_*在查询执行期限间创建的临时表和文件。

?Handler_*存储引擎 *** 作。

?Select_*不同类型的联接执行计划。

?Sort_*几种排序信息。

?Show

session status like ‘Select’

?Show profiles

?SET profiling=1

?Show

profiles\G

?Show profile


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9534654.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存