|
최근에 여러 회사를 연달아 면접을 보며 중요한 질문들을 기록하며 공부하고 실력을 향상시키겠다고 스스로를 격려했고, 동시에 친구들에게 도움이 되고 싶었습니다. 조금씩, 단계별로 배우는 내용이 많습니다. 어떤 것은 면접에서 묻고, 어떤 것은 채용 요건이며, 또 어떤 것은 스스로 추가됩니다.
1. MySQL 관련 지식 1. MySQL 최적화 방법 MYSQL 최적화 일반적인 방법 MySQL 성능 최적화 방식
2. 데이터베이스와 테이블을 어떻게 나누는지 참고문헌: http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html http://www.jb51.net/article/29771.htm 3. Mysql+에서 듀얼 머신 핫 스탠바이 및 부하 분산 방법
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
4. 데이터 테이블의 유형은 무엇인가요? MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV 등도 포함됩니다 MyISAM: 성숙하고 안정적이며 관리하기 쉽고, 빠르게 읽힙니다. 일부 기능은 지원되지 않습니다(트랜잭션 등), 테이블 레벨 잠금. InnoDB: 트랜잭션, 외래 키, 행 잠금을 지원합니다. 공간을 많이 차지하고 전체 텍스트 색인을 지원하지 않습니다. myisam과 Innodb 엔진의 주요 특징: MySQL의 스토리지 엔진인 MyISAM과 InnoDB의 차이점은 무엇인가요? 5. 안티-SQL 주입 방법 mysql_escape_string(strip_tags($arr["$val")); 6. mysql이 큰 테이블을 여러 테이블로 분할한 후 크로스 테이블 쿼리 효율성 문제를 해결하는 방법 [PHP] 일반 문서 보기 CODE에서 제 코드 슬라이스에서 파생된 코드 슬라이스를 확인하세요 /** * 함수명: post_check() * 함수 기능: 제출된 편집 처리를 담당합니다 * 매개변수: $post: 제출할 콘텐츠 * 반환 값: $post: 필터링된 콘텐츠를 반환함 */ 함수 post_check($post){ if(!get_magic_quotes_gpc()){// magic_quotes_gpc가 열려 있는지 결정합니다. $post = 애드슬래시($post); 열지 않고 제출된 데이터를 magic_quotes_gpc 필터링 수행하세요 } $post = str_replace("_","\_", $post); '_'를 걸러내세요 $post = str_replace("%","\%", $post); '%'를 걸러내세요 $post = nl2br($post); 개종이 등장한다 $post = htmlspecialchars($post); HTML 마크업 변환 $post 반환; } 7. 인덱스 적용 인덱싱을 고려할 때 색인화에 적합하지 않은 상황 명제가 인덱스를 사용하는지 판단하는 방법 인덱스가 사용되지 않는 빈번한 상황: 예를 들어 '%.....' 데이터 타입의 암묵적 변환 또는 키워드와 기타 조건 전체 텍스트 색인: CHAR, VARCHAR, 텍스트 타입의 열에서 생성된 MYIsAM 테이블에만 사용할 수 있습니다.
8. 수천만 개의 대형 테이블에 맞게 MySQL을 어떻게 최적화하나요? 참고 문헌 http://www.zhihu.com/question/19719997 9. mysql의 느린 쿼리 문제 사실, 느린 쿼리 로그를 분석하는 비교적 간단한 방법이며, 로그를 보고 싶지 않으면 도구를 사용해 완성할 수 있습니다. mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter 등은 분석하려면 많은 경험이 필요해 보이며 시간 낭비처럼 느껴집니다. 10. 사용자 로그인 상태 세션, 쿠키, 데이터베이스 또는 멤캐시 http://www.dewen.org/q/11504/ 의 장단점에 관하여 사용자의 로그인 상태와 관련해, session%2Ccookie, 데이터베이스, 또는 멤캐시의 장단점 11. 극단적인 경우는 거래에서 처리됩니다 12. SQL 언어는 4가지 범주로 나뉘어 있으니 목록을 명시해 주세요 DDL-- 창조, 폐기, 변형 DML--삽입, 업데이트, 삭제 DQL-셀렉트 DCL-- 보급금, 취소, 커밋, 롤백
2. PHP 기본 세션 PHP가 MySQL 데이터베이스에 연결하는 여러 방법과 차이점 MySQL: 프로세스 지향 MySQLi: 객체지향 PDO: 높은 휴대성 참고하시기 바랍니다: PHP 기본 시리즈: PHP가 MySQL 데이터베이스에 연결하는 데 사용하는 세 가지 API 3. PHP 고급 긴 연결 및 단기 연결 사용 소켓 결제 보안 문제 객체지향 세 가지 주요 특징: 캡슐화, 상속, 그리고 다형성(메서드 재작성). 추상 클래스: 추상, 적어도 한 메서드는 인스턴스화할 수 없는 추상 메서드로, 서브클래스의 공통 인터페이스를 정의합니다. 인터페이스: 인터페이스, PHP의 단일 상속 문제를 해결하기 위한 모든 메서드는 공개 접근 추상 메서드이며, 변수는 선언할 수 없고 상수만 선언할 수 있습니다. 여러 인터페이스를 구현하면서 클래스를 상속합니다 클래스 A는 확장 B를 구현합니다. 인터페이스 1, 인터페이스 2..., 인터페이스 n() { 모든 인터페이스에서 메서드를 구현하세요 } LAMP와 LNMP 웹사이트 아키텍처 간 성능 차이 원인 분석 인터프리터 및 컴파일 언어의 성능 분석, 예시. 4. 규칙성 이메일, HTML, JS 등 매치를 진행합니다 5. 개발 기초 프로세스와 스레드의 정의, 구분과 연결. 프로세스의 상태: 달리기, 준비, 대기 6. Nosql 데이터베이스 Memcached, redis, mongodb 차별화 연결 3장면이 완전히 다른 것들이에요. 1.memcached: 단일 키 값이 메모리에 캐시되어 있다면, 분산 캐시를 대신할 수 있는 객체 캐싱은 없습니다; 2. redis: 알고리즘과 데이터 구조의 집합으로, 빠른 데이터 구조 연산이 가장 큰 특징이며 데이터 지속성을 지원합니다; 3. MongoDB는 RDB와 NoSQL 사이에 위치한 BSON 구조로, 더 느슨하고 유연하지만 트랜잭션을 지원하지 않으며 중요하지 않은 데이터 저장소로만 사용됩니다. Memcached 대신 MongoDB나 redis를 참고할 수 있을까요? 7. 일반적으로 사용되는 리눅스 명령어 예를 들어, 소프트링크 8. 건축 관련 프로젝트 시작 전에 스트레스 테스트, 단일 서버가 지원하는 동시성 수, 그리고 PV 수를 확인하세요. 서버 자원의 합리적인 할당 CPU:Apache 고부하 환경에서는 너무 많은 디스크 IO 읽기와 쓰기가 많은 자원을 차지하고, CPU도 결국 CPU를 너무 많이 차지하게 됩니다. 메모리: 메모리 뱅크, 데이터베이스 소프트웨어
하드 드라이브: 파일 Web2.0 아키텍처 선택 MongoDB+Redis나 MySQL+Memcached가 더 나은 조합이며, 단순 로직에는 NOSQL이 사용됩니다 현재 주요 웹사이트 아키텍처가 인기가 많습니다 램프, LNMP, LLMP 현재 네트워크에는 LNAMP 아키텍처도 존재하는데, 이는 nginx와 Apache의 장점을 결합한 것으로, Apache를 사용해 PHP를 로드하고, nginx는 다른 웹 요청을 파싱하며, nginx의 rewrite 모듈을 사용합니다. 하지만 Apache 포트는 일반에 공개되어 있지 않으며, 많은 Apache 모듈이 로딩 없이 자원을 줄일 수 있습니다. |