select문 앞에 explain을 붙이면 인덱스를 사용하는지 안하는지 확인할수있으며 type에 ALL이 있다면 FullScan 인덱스를 타고있지않다는 표시 경우의수가 적을경우에는 인덱스를 타지않습니다ex) select * from Table_Name where No>0 and A>0; // 인덱스 안탐 인덱스는 하나만 탑니다오라클의 경우에는 인덱스를 여러개 걸어주면 그것을 다 타지만 MySQL에선느 인덱스를 하나만 탑니다 결합인덱스 사용법. 특정 테이블에서 동일한 쿼리문을 주로 사용하고 그 쿼리문이 아래와 같을 경우... select * from Table_Name where A='a' and B='b' and C='c'; 이경우 이 세개의 인덱스를 전부 타기 위해서는 결합인덱스를 걸어줘야 됩니다. A..
*MySQL 쓰면서 하지 말아야 할 것 17가지*권장사항이다. 이것을 이해하면 당신의 어플리케이션이 더 나은 성능을 발휘할 것이다. 다만 이것이 사람의 실력을 판단하는 척도로 사용되서는 안 될 것이다. 작게 생각하기- 조만간 규모가 커질거라면 MySQL ecosystem을 봐야된다.- 그리고 캐싱 빡시게 안 하는 메이저 웹사이트는 없다.- develooper.com의 Hansen PT랑 Ilia 튜토리얼 볼 것- 처음부터 확장 가능하게 아키텍처 잘 쪼개놔야된다.- 복제랑 파티셔닝 어떻게 할지 미리 계획 세워놔라.- 파일 기반 세션 좀 쓰지마 -_-- 그렇다고 너무 쓸데없이 크게 생각하지도 말 것- 특히 성능하고 확장성 구분 못 하면 난감함 EXPLAIN 안 써보기- SELECT 앞에 EXPLAIN 이라고..
외래키 생성시 테이블 간 타입, character set 등이 맞아야한다
select last_insert_id(); // 마지막으로 insert한 id(no)를 가져옴 show full columns from 테이블명 ; // 테이블 컬럼들에대한 자세한 정보가 나옴 show tables; // DB의 테이블목록 출력 select * from information_schema.table_constraints where table_name = '테이블명'; // 테이블의 제약조건명을 볼수있음 alter table 테이블 이름 auto_increment=1; // auto_increment 재설정 alter table 테이블 이름 modify column 컬럼명 컬럼 타입; // 컬럼 속성 변경 alter table 테이블 이름 add constraint 제약조건이름(아무거나) ..
Page : 데이터 파일을 구성하는 논리 단위 테이블에 insert 쿼리를 날리게되면 그 쿼리는 8kb 페이지파일에 등록된다 이 8kb 페이지파일에 레코드가 기록되고 우리가 select할떄 이 페이지파일의 레코드가 select 된다 이 페이지파일에 레코드가 10개가 들어있으면 한번읽을때 10개를 읽는다 페이지 파일 하나에 100개의 레코드 > 페이지 파일하나에 10개의 레코드가진 파일 10개 읽기 페이지 내의 행이 많을수록 IO의 효율이 증가 성능의 시작 페이지를 잘알아야한다 인덱스는 빨리빨리다 인덱스의 장점 1. 찾는데이터를 가지고있다면 직접 주거나 없다면 어디있는지 알려준다 2. 데이터 중복을 방지 Primary Key 제약, Unique 제약 - pk가 설정되면 해당 컬럼에 index가 걸려서 데이..

M : MongoDB E : Express JS A : Angular JS N : Node JS ExpressJS로 어플리케이션을 제작하는데 사용 Node.js를 웹서버 구축에 사용한다 몽고db는 JSON으로 전달하기때문에 Node.js와 함께 사용하면 좀더 편하게 사용할수있다 JAVA와 함께 사용하면 매핑해야하기때문에 좀 불편할수있다 RDB의 레코드 == 몽고DB의 하나의 문서 RDB의 테이블 == 몽고DB의 컬렉션 RDB의 컬럼 == 몽고DB의 속성 RDB의 장점 데이터를 중복없이 구조적으로 모델링 가능 안정감이있다 RDB의 단점 스키마 (테이블구조)가 변경되면 큰일남 처음 설계가 굉장히 중요함 MongoDB의 장점 스키마가 변해도 상관이 없다 ( document형식이기때문에 문제되지않는다) 속도와 ..