본문 바로가기
MySql

MySQL 임의의 데이터로 1000000 행을 생성하는 방법은 무엇입니까?

by 베이스 공부 2020. 12. 3.
반응형

배경

나는 일종의 데이터 로거에서 일하고 있습니다.

1000000 (1M) 행에 필요한 저장 공간과 Raspberry Pi가 이러한 큰 테이블을 처리하는 방법을 시도하고 싶습니다. 그룹화, 평균 계산 및 기타 성능 실험을 통해 일부 쿼리를 실행하고 싶습니다.

내 테이블은 다음과 같습니다.

CREATE TABLE `data` 
(
  `id`         bigint(20) NOT NULL      AUTO_INCREMENT,
  `datetime`   timestamp  NULL          DEFAULT CURRENT_TIMESTAMP,
  `channel`    int(11)                  DEFAULT NULL,
  `value`      float                    DEFAULT NULL,

  PRIMARY KEY (`id`)
)

질문

MySQL에서 1 억 행을 어떻게 채울 수 있나요?

요구 사항 :

나는 SQL을 조금 알고 있지만 PL / SQL, SQL 루프 등에서는 좋지 않습니다.

편집하다:

명확히하기 위해-im using MySQL 5.5.

PL / SQL을 언급 한 것은 내 실수 였고, PL /은 Oracle만이 아니라 일반적으로 SQL의 절차 적 기능을 의미한다고 생각했습니다.

 

해결 방법

 


CREATE TABLE `data` 
(
  `id`         bigint(20) NOT NULL      AUTO_INCREMENT,
  `datetime`   timestamp  NULL          DEFAULT CURRENT_TIMESTAMP,
  `channel`    int(11)                  DEFAULT NULL,
  `value`      float                    DEFAULT NULL,

  PRIMARY KEY (`id`)
);


DELIMITER $$
CREATE PROCEDURE generate_data()
BEGIN
  DECLARE i INT DEFAULT 0;
  WHILE i < 1000 DO
    INSERT INTO `data` (`datetime`,`value`,`channel`) VALUES (
      FROM_UNIXTIME(UNIX_TIMESTAMP('2014-01-01 01:00:00')+FLOOR(RAND()*31536000)),
      ROUND(RAND()*100,2),
      1
    );
    SET i = i + 1;
  END WHILE;
END$$
DELIMITER ;

CALL generate_data();

필요에 따라 수정하십시오. 절차를 삭제하려면 :

DROP PROCEDURE generate_data;

아마도 이것은 당신에게 시작을 줄 수 있습니다!

 

참조 페이지 https://stackoverflow.com/questions/25098747

 

 

반응형

댓글