Introducing resinOS: An Operating System Tailored for Containers and Built fo...BalenaThis presentation, from the Embedded Linux Conference Europe in October 2016, discusses how resinOS was built, highlights some of its key features, and shares a roadmap for future development and contribution.
resinOS is the latest open-source tool built by resin.io to enable the future of hardware with the tools of modern software. resinOS is a simple yet powerful operating system that brings standard Docker containers to embedded devices and works on a wide variety of device types and architectures. resinOS was born from the team’s experience deploying embedded containers across device types and has been battle-tested in production environments.
You can download resinOS at https://resinos.io
MariaDB OptimizationJongJin Lee*If you see the screen is not good condition, downloading please.*
MariaDB Optimization
- 풀 테이블 스캔
- ORDER BY 처리(Using filesort)
- GROUP BY 처리
- DISTINCT 처리
- 임시 테이블(Using Tempoary)
- 인덱스 컨디션 푸시다운(Index Condition Pushdown, ICP)
- 멀티 레인지 리드(Multi Range Read)
- 인덱스 머지(Index merge)
- 테이블 조인
- 서브 쿼리
R 스터디 두번째Jaeseok Park
"R을 이용한 데이터 처리 & 분석 실무 - 서민구 지음" 정리 자료 #2
- https://thebook.io/006723/
- 첫번째 : goo.gl/FJjOlq
- 두번째 : goo.gl/Wdb90g
- 세번째 : goo.gl/80VGcn
- 네번째 : goo.gl/lblUsR
3. INSERT : 자료의 입력- PART I
만들어져 있는 Table에 자료를 저장한다.
http://dev.mysql.com/doc/refman/5.1/en/insert.html
• 위 링크의 기본 형을 바탕으로 새롭게 다음과 같은 형태를 추천한다.
INSERT INTO tbl_name [(col_name, … )]
VALUES (value, …), … , (value);
자료 입력
> INSERT INTO major (mid, mname) VALUES (1, '통계학과');
> INSERT INTO major (mname) VALUES ('수학과‘);
> INSERT INTO dept_tab VALUES
+> (3, '컴퓨터공학과'),
+> (4, '전자공학과');
> SET CHARATER SET euckr;
한림대학교 웹데이터베이스 - 이윤환
4. UPDATE : 자료의 변경
기존 데이터의 행을 선택해서 특정 열의 값 변경
• 조건절이 없으면 전체 테이블의 지정한 열의 값을 하나로 변경한다.
행의 선택 (WHERE 문)
• DB는 기본적으로 행단위로 데이터를 다룬다.
• WHERE는 특정 조건을 주어 해당 조건에 맞는 행을 선택하도록 한다.
• 조건들은 AND와 OR 에 의해 결합된다.
http://dev.mysql.com/doc/refman/5.1/en/update.html 을 바탕으로 다음과
같이 사용한다.
UPDATE tbl_name SET
col_name1={expr1|DEFAULT}
[, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
한림대학교 웹데이터베이스 - 이윤환
5. UPDATE : 자료의 변경
예제
• 학생정보에서 학과 코드 3을 2로 잘못 입력하여 변경
• student 에서 smajor가 2인 행을 찾아 3으로 변경
> UPDATE student SET smajor = 3 WHERE smajor = 2;
• 컴퓨터 공학과의 이름이 둘리인 학생이 이름을 희동이로 개명하여
바꾸고자 한다.
• 둘리가 이름인 학생이 여러명 있을 수 있으므로 학과 코드가
3이고 이름이 둘리인 학생의 이름을 희동이로 변경한다.
> UPDATE student SET sname = '희동이'
+> WHERE sname = '둘리' AND smajor = 3
한림대학교 웹데이터베이스 - 이윤환
6. DELETE : 자료 삭제
조건에 맞는(WHERE) 행을 선택하고 삭제
http://dev.mysql.com/doc/refman/5.1/en/delete.html 을 바탕으로 다
음과 같이 사용한다.
DELETE FROM tbl_name
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
예제
• 학번이 20121001번인 학생의 데이터를 삭제하라.
> DELETE FROM student WHERE sid = ‘20121001’;
• WHERE 이후가 생략되면 해당 테이블의 전체 데이터 삭제
> DELETE FROM student_tab;
한림대학교 웹데이터베이스 - 이윤환
7. SELECT : 자료 검색
실제 DB에서 가장 많이 사용되는 기능
조건에 부합(WHERE) 하는 행을 선택하여 보여준다.
http://dev.mysql.com/doc/refman/5.1/en/select.html
SELECT select_expr [, select_expr ...]
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
한림대학교 웹데이터베이스 - 이윤환
9. SELECT : 자료 검색
• 학과 코드 1번에 해당하는 학생 검색
SELECT * FROM student WHERE smajor = 1;
• 학과 코드 1번에 해당하는 학생들의 학번과 이름 검색
SELECT sid, same FROM student WHERE smajor = 1;
• 학과별 학생수검색
• count(열이름) : 열의 숫자 반환;
SELECT smajor, count(smajor) as '명'
FROM student GROUP BY smajor;
• 학과 코드가 1인 학과를 제외한 학과별 학생수 검색
SELECT smajor, count(smajor) as '명'
FROM student GROUP BY smajor
HAVING smajor <> 1;
한림대학교 웹데이터베이스 - 이윤환
10. SELECT : 자료 검색
• 과목코드 순으로 학번과 학생 이름 출력 (동일 학과 내에
서는 학번의 역순)
SELECT smajor, sid, same
FROM student
ORDER BY smajor ASC, sid DESC;
• 학번이 가장 빠른 학생의 학번과 이름 출력
• 학번의 오름차순으로 정렬하고 그중 첫번째 행 출
력
SELECT sid, sname FROM student
ORDER BY sid LIMIT 0, 1;
한림대학교 금융정보통계
한림대학교 웹데이터베이스 - 이윤환 이 윤 환,
14. 쿼리 수행
mysql_query()
• http://kr.php.net/manual/en/function.mysql-query.php
• resource mysql_query (
string $query [, resource $link_identifier ] )
• $query : 수행할 SQL 문 혹은 MySQL 명령어
• $link_identifier : 연결 정보를 담고 있는 변수
• Ex.
$result = mysql_query('SELECT mid, mname FROM major');
if (!$result) {
die('Could not query:' . mysql_error());
}
한림대학교 웹데이터베이스 - 이윤환
15. 쿼리 결과 처리 – 영향을 받은 행의 수
mysql_affected_rows
• http://kr.php.net/manual/en/function.mysql-affected-rows.php
• int mysql_affected_rows ([ resource $link_identifier ] )
• $link_identifier : 연결 정보를 담고 있는 함수
• Insert, update, delete의 결과로 영향을 받은 행의 수 반환
mysql_num_rows()
• http://kr.php.net/manual/en/function.mysql-num-rows.php
• int mysql_num_rows ( resource $result )
• $result : mysql_query()를 통한 결과 집합
• Select 문을 통해 선택된 행의 수 반환
Ex. mysql_counting.php
한림대학교 웹데이터베이스 - 이윤환
16. 쿼리 결과 가져오기
mysql_result
• http://kr.php.net/manual/en/function.mysql-result.php
• string mysql_result ( resource $result ,
int $row
[, mixed $field = 0 ] )
• $result : mysql_query의 결과 집합
• $row : 가져올 행 선택 (0부터 시작)
• $field : 가져올 열 순서(0부터 시작)
• Ex. mysql_result.php
• 별로 안 좋은 선택
한림대학교 웹데이터베이스 - 이윤환
17. 쿼리 결과 가져오기
mysql_fetch_array
• http://kr.php.net/manual/en/function.mysql-fetch-array.php
• array mysql_fetch_array ( resource $result
[, int $result_type = MYSQL_BOTH ] )
• $result : mysql_query의 결과 집합
• $result_type
• MYSQL_BOTH : 열의 결과를 열의 이름의 연관배열과 순서 인
덱스 모두로 가져온다.
• MYSQL_NUM : 열의 결과를 순서 인덱스로 가져온다.
• MYSQL_ASSOC : 열의 결과를 열의 이름의 연관배열로 가져온
다.
• 한 번 수행할 때 결과 셋의 첫번째 행을 가져오고 그 다음 수행할 때
다음 행을 가져온다.
• 순환문과 함께 쓰인다
• Ex. mysql_fetch_array.php
한림대학교 웹데이터베이스 - 이윤환