[MySQL] 5. 집계와 서브쿼리
·
DB/MySQL
20. 집계함수COUNT() : 행 개수를 반환 NULL 값이 있는경우 : COUNT(*)는 NULL 포함, 칼럼 지정할 경우 포함하지 않는다.AVG() : 해당 행 평균MIN() : 해당 열의 최소값MAX() : 해당 열의 최대값 GROUP BY가 MIN/MAX의 경우 EXPAIN을 실행해보면, Using index for group-by를 확인할 수 있다.22. 그룹화GROUP BY 구에 열을 지정하여 그룹화하면 지정된 열의 값이 같은 행이 하나의 그룹으로 묶인다. GROUP BY 구로 그룹화된 각각의 그룹이 하나의 집합으로서 집계함수의 인수로 넘겨진다.xxxxxxxxxxSELECT ...FROM 테이블명GROUP BY 열1, 열2, ....GROUP BY에서 조건을 주고 싶을 경우 WHERE를 사용..
[Redis] About Redis
·
DB/Reids
Remote Dictionary Server의 약어인 Redis는 데이터베이스, 캐시, 메시지 브로커 및 대기열로 사용하는 빠르고 오픈 소스, 인 메모리 키-값 데이터 스토어입니다. 이 프로젝트는 Redis의 원 개발자인 Salvatore Sanfilippo 씨가 이탈리아 스타트업의 확장성을 높이려 노력하는 과정에서 시작되었습니다. 현재 Redis는 1밀리초 미만의 응답 시간을 제공하므로 게임, 광고 기술, 금융 서비스, 의료 서비스 및 IoT 분야에서 실시간 애플리케이션을 위해 초당 수백만 건의 요청을 지원할 수 있습니다. Redis는 캐싱, 세션 관리, 게임, 리더 보드, 실시간 분석, 지형 공간, 라이드 헤일링, 채팅/메시징, 미디어 스트리밍 및 게시/구독 앱에서 주로 사용됩니다. Redis는 데이..
[MySQL] 4. 데이터의 추가, 삭제, 갱신
·
DB/MySQL
16. 행 추가하기 - INSERT 1) INSERT로 행 추가하기 INSERT INTO 테이블명 VALUES(값1, 값2, ...) INSERT INTO 테이블명(열1, 열2, ...) VALUES(값1, 값2, ...) , (값1, 값2, ...) , (값1, 값2, ...) , ... 테이블의 열에 NOT NULL제약이 있을 경우, 해당 열에 NULL 삽입 시 에러가 발생한다. CREATE TABLE IF NOT EXISTS sample ( id INT, num INT NOT NULL ); INSERT INTO sample VALUES(1); //error... INSERT INTO sample VALUES(1, NULL); //error... CREATE TABLE IF NOT EXISTS sam..
[PHP] PDO
·
Language/PHP
데이터베이스는 웹 어플리케이션 개발에 절대 빠지지 않는 기능이다. php 역시 데이터베이스를 위한 추상화 계층인 PDO를 제공하며 이를 통해 데이터베이스를 간편히 사용할 수 있다. PDO는 php의 내장 기능이며 php프로그램과 데이터베이스 사이의 통신을 단순화하는 역할을 한다. 실습은 다음과 같은 환경에서 진행했다. php 7 MySQL 5.71. 테스트 테이블 생성 MySQL에 실습을 위한 새로운 스키마를 만들고 테이블을 생성했다. ` CREATE SCHEMA `test_sch` DEFAULT CHARACTER SET utf8 ; /* test용 테이블 */ CREATE TABLE `world_of_renaissance`.`test_table` ( `id` INT NOT NULL AUTO_INCREM..
[PHP] phpstorm code sniffer 설정
·
Language/PHP
윈도우 phpstorm에 코드 검사기인 mess detector와 codesniffer를 연동하여 코딩 컨벤션 및 PSR-2 형식를 검사할 수 있다. 1. php 설치 링크에서 PHP의 윈도우 버전 설치 압축 해제 후 파일을 C:/php7/에 옮긴다. 그리고 php.ini-production 파일을 열어 extension_dir를 찾아 아래처럼 수정한다. ; extension_dir = "C:/php7/ext"설치확인 php -v2. composer 설치 공식 홈페이지에서 다운로드 설치확인 composer help3. 설치 mess detector 설정 composer global require squizlabs/php_codesniffer phpmd/phpmd설치를 시작하면 아래처럼 첫 줄에 어느 경로..
[Memcached] About Memcached
·
DB/Memcached
Memcached? 무료 오픈소스인 고성능 분산 메모리 객체 캐싱 시스템이지만 웹 서비스의 DB 부하를 경감시키기 위해 만들어 졌습니다. 공식 홈페이지에서 Memcached를 설명하는 부분이다. 이 내용을 조금 더 자세히 보면오픈소스 : BSD license로 수정 및 배포 제한 없음고성능 : 멀티 쓰레드를 통해 빠른 처리 속도를 지원분산 : 노드의 확장을 통한 분산처리 지원메모리 : 모든 데이터를 메모리에 저장하여 빠르게 접근/처리 가능캐싱 시스템 : 자주 사용되는 데이터를 미리 저장해두어 DB의 로드를 줄여 처리 속도 향상같은 특징을 가지고 있다.Memcached는 데이터를 key-value 구조로 메모리에 저장한다. key를 통해 빠르게 데이터에 접근할 수 있다. Memcached에서 데이터는 문자..
[Memcached]PHP & Memcached 연동
·
DB/Memcached
Centos7 PHP Version 7.2.16 memcached 1.4.15다음과 같은 환경에 진행했다. 1. Memcached 설치 yum -y update # yum으로 설치하면 1.4.15 버전이 설치됨, 가장 최신 버전은 1.5.13 yum -y install memcached # 설치확인 memcached -h설정 파일 위치 /etc/sysconfig/memcached2. PHP-Memcached 설치 PHP에서 Memcached를 사용하게하는 라이브러리이다 php에서 memcached를 사용하기위한 라이브러리 2개(memcache, memcached)가 있다. 나는 memcached를 설치했다. memcahced가 사용할 수 있는 메소드가 더 많다고 한다. 참고 php-memcached를 사..
[MySQL]3. 정렬과 연산
·
DB/MySQL
9. 정렬 - ORDER BY ORDER BY 구를 사용하여 검색 결과의 행 순서를 바꿀 수 있다. 지정하지 않을 경우 데이터베이스 내부에 저장된 순서로 반환된다. ORDER BY는 검색된 레코드를 어떤 순서로 정렬할지 결정한다. 만약 ORDER BY 절이 사용되지 않으면 SELECT 쿼리의 결과는 어떤 순서로 정렬될까? 인덱스를 사용한 SELECT의 경우에는 인덱스의 정렬된 순서대로 레코드를 가져온다. 인덱스를 사용하지 못하고 MyISAM 테이블은 테이블에 저장된 순서대로 가져오는데 이 순서가 INSERT 된 순서를 의미하는 것은 아니다. 일반적으로 테이블의 레코듸가 삭제 되면서 빈 공간이 생기고, ISNERT 되는 레코드는 항상 테이블의 마지막이 아니라 빈 공간이 있으면 그 빈 공간에 저장되기 때문이..