반응형
배경
나는 일종의 데이터 로거에서 일하고 있습니다.
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
반응형
'MySql' 카테고리의 다른 글
MySQL에서 외래 키를 삭제할 수 없습니다. (0) | 2020.12.03 |
---|---|
MySQL Mysql Workbench에서 0 또는 1 대 다 관계를 만드는 방법 (0) | 2020.12.03 |
MySQL에서 유효하지 않은 오류 처리기를 선언 하시겠습니까? (0) | 2020.12.03 |
MySQL SQL 덤프는 무엇입니까? (0) | 2020.12.03 |
MySQL Node-MySQL-Query () 메서드에서 이스케이프 vs Mysql.Escape () / Mysql.EscapeId () (0) | 2020.12.03 |
댓글