본문 바로가기

분류 전체보기270

추상 vs 인터페이스 추상 vs 인터페이스 c# 9.0 프로그래밍 책에는 c++에는 다중상속이있지만 c#은 단일 상속, 그렇지만 interface는 추가로 받아 구현할 수 있다고 적혀있지만 의미론적으로는 추상은 뼈대를 만들고 그에 해당하는 기능들은 인터페이스로 둘 수 있다고 다른? 곳에서 본 것같다 House class 집이라는 것을 추상클래스로 뼈대를 잡았다 그에 상응하는 door는 기능적으로 인터페이스로 조정할 수 있다. public abstract class House { private String roof = "House roof"; private String wall = "House wall"; private Door door; public void setDoor(Door door) { this.door = door.. 2022. 12. 5.
데이터모델링_트랜잭션_savepoint duplicate duplicate는 조심해야한다 만약 INSERT를 할 때 실패를 했고 on duplicate key update dname ='서버팀2'를 한다면 row를 두번타게된다.. INSERT INTO Dept (PID, dname ) VALUES (2, '서버팀') ON duplicate key update dname ='서버팀2' 위대로 한다면, 중복값으로 값이 못들어가서 실패 그후에 dname을 서버팀2로 들어가게된다 이럴때 pk값이 1개를 건너 뛰게된다. transaction, savepoint select @@autocommit 에서 autocommit이 1이라면 true이다.. start transaction; select * from De.. 2022. 9. 23.
partition / index 타기 (정리 예정) index 타기 정리 예정.. explain select * from RedDB.`Character` c WHERE CharacterId = 1 show INDEX from RedDB.`Character` explain select * from `Character` c WHERE CharacterId = 1 order by Nickname optimize table `Character` show table status -- Data_length가 clustered index, index_length는 nonclustered_index where, order by, group by 등에는 가능한 index가 걸린 컬럼 사용. where절에 함수, 연산, like(시작 부분 %) 문은 인덱스를 안탄다. be.. 2022. 9. 18.
InnoDB VS MyISAM, 인덱스 최적화, 쿼리 최적화 InnoDB는 트랜잭션 처리가 가능하며, 대용량 데이터를 다루기에 좋다 그러나 트랜잭션이 필요없고 조회기능이 많을 때는 MyISAM이 좋다. MyISAM은 항상 테이블에 ROW COUNT를 가지고 있어서 조회 쿼리시 빠르다. MyISAM은 테이블 수준의 잠금, InnoDB는 행 수준의 잠금 MyISAM은 파일 시스템 블록 캐시에 의존하는 반면, InnoDB는 엔진 자체 내에서 행 캐시와 인덱스 캐시를 결합하여 작업 수행 인덱스 최적화 기법 인덱스는 두번 접근이다. 해당 인덱스에 접근한 뒤 인덱스를 통해서 collection에 또 접근을 해야한다 그래서 인덱스를 여러 컬럼에 건다고 좋은 것은 아니다. 인덱스를 생성할 때는 순서가 있는데 생성 순서에 따라 인덱스 성능이 달라진다. 카디널리티는 유니크한 값의 .. 2022. 9. 17.