>  기사  >  2017 채용 시즌: PHP 면접 질문 요약!

2017 채용 시즌: PHP 면접 질문 요약!

大家讲道理
大家讲道理원래의
2018-05-11 13:50:5521385검색

따뜻하고 매년 IT 채용 성수기라는 말이 있듯이 모든 기업에서 채용이 뜨겁게 이뤄지고 있으며, 취업을 하거나 이직을 하는 사람들도 모두 찾고 있습니다. 좋은 회사에 입사하려면 실력이 가장 중요하지만, 지원 능력도 무시할 수 없습니다. PHP 중국어 웹사이트에서 참고할 수 있는 포괄적인 PHP 인터뷰 질문을 정리했습니다! (2017년 채용시즌 PHP 급여 및 혜택은 어떻게 되나요?)

PHP 면접 기본 질문

1. 큰따옴표와 작은따옴표의 차이

  • 큰따옴표는 변수를 해석하고 작은따옴표는 변수를 해석하지 않습니다

  • 큰따옴표 안에 작은따옴표를 삽입하고, where if 변수가 있는 경우 변수 설명

  • 큰따옴표 안의 변수 이름 뒤에는 숫자, 문자, 밑줄 이외의 특수 문자가 와야 하거나 변수가 반드시 와야 합니다. 그렇지 않으면 변수 이름 뒤의 부분이 전체로 처리되어 구문 오류가 발생합니다.

  • 큰따옴표는 이스케이프 문자를 해석하지 않습니다. , 그러나 ' 및 \

  • 을 해석하면 작은 따옴표 문자가 가능한 한 작은 따옴표를 사용하도록 할 수 있습니다. 작은 따옴표가 큰 따옴표보다 더 효율적입니다. 연산 전 변수가 있는지, 작은따옴표는 없는지 판단 필요)

2. 일반적으로 사용되는 슈퍼 전역 변수(8)

  • $_GET ----->전송 방법 가져오기

  • $_POST ----->후 전송 방법

  • $_REQUEST ----->get 및 Post 값을 두 가지 방법으로 받을 수 있습니다


  • $GLOBALS -----> 모든 변수는

  • $_FILES ----->

  • $_SERVER ----->를 사용하여 파일 업로드 내부에 배치됩니다. 환경 변수


  • $_SESSION ----->세션 제어가 사용됩니다

  • $ _COOKIE ----->Session

을 제어할 때 사용됩니다. 3 HTTP에서 POST, GET, PUT, DELETE 메소드의 차이점

HTTP는 서버와 상호 작용하는 다양한 방법을 정의합니다. 가장 기본적인 방법은 POST, GET, PUT 및 DELETE입니다. 필수 URL의 전체 이름은 다음과 같이 이해할 수 있습니다. 네트워크 및 게시, 가져오기, 넣기 및 위임은 이 리소스를 추가, 삭제, 수정 또는 확인할 수 있습니다!

3.1 양식에서 get과 post 제출 방법의 차이점
  • get은 action 속성이 가리키는 URL에 매개변수 데이터 대기열을 추가합니다. 제출된 양식의 값은 URL에서 볼 수 있는 양식의 각 필드와 일대일로 일치합니다. 게시물은 HTTPPOST 메커니즘을 사용하여 양식의 각 필드와 해당 내용이 지정된 URL 주소로 함께 전송되는 것을 방지합니다. HTML 헤드의 action 속성에 의해 처리되며 사용자는 이를 볼 수 없습니다.

  • get 메소드의 경우 서버측에서는 Request.QueryString을 사용하여 해당 값을 가져옵니다. post 방식의 경우 서버측에서는 Request.Form을 사용하여 제출된 데이터를 가져옵니다

  • get으로 전송되는 데이터의 양은 적고, post로 전송되는 데이터의 양은 일반적으로 기본적으로 제한이 없습니다. 그러나 이론적으로 IIS4의 최대 용량은 80kb이고, Get은 매우 안전합니다.

3.2
  • GET 요청은 정보를 얻기 위해 데이터베이스에 데이터 요청을 보냅니다. 이 요청은 데이터베이스의 선택 작업과 마찬가지로 데이터를 쿼리하는 데만 사용됩니다. 데이터를 수정하거나 추가하지 않으며 리소스 내용에 영향을 주지 않습니다. 즉, 요청에 부작용이 없습니다. 작업을 몇 번 수행해도 결과는 동일합니다.

  • PUT 요청은 GET과 달리 서버에 데이터를 보내 정보를 변경합니다. 이 요청은 데이터베이스의 업데이트 작업과 동일하며 데이터의 내용을 수정하는 데 사용됩니다. 그러나 데이터 유형은 증가하지 않습니다. 즉, PUT 작업을 아무리 많이 수행해도 결과는 달라지지 않습니다.

  • POST 요청은 PUT 요청과 유사합니다. 둘 다 서버에 데이터를 전송하지만 이 요청은 데이터베이스의 삽입 작업과 마찬가지로 데이터 유형과 기타 리소스를 변경합니다. 새로운 콘텐츠를 만들겠습니다. 현재 거의 모든 제출 작업은 POST를 사용하여 요청됩니다.

  • DELETE 요청은 이름에서 알 수 있듯이 특정 리소스를 삭제하는 데 사용됩니다. 이 요청은 데이터베이스의 삭제 작업과 같습니다.

4. PHP 소개

하이퍼텍스트 전처리기----하이퍼텍스트 전처리기

개인 홈페이지 원래 이름

목표 목적: 웹 개발자가 동적으로 생성된 웹 페이지를 빠르게 작성할 수 있도록 합니다. 다른 페이지에 비해 PHP는 프로그램을 HTML 문서에 내장하여 실행하므로 HTML 편집을 완전히 생성하는 CGI보다 훨씬 효율적입니다.

HTML: 하이퍼텍스트 마크업 언어

창립자: Rasmus Lerdorf, 1968년 출생, 캐나다 워털루 대학교

Ledov는 처음에 자신의 개인 웹페이지를 유지하기 위해 이전 언어로 유지 관리 프로그램을 작성한 다음 c로 다시 작성하여 결국 php/fi로 이어졌습니다.

타임라인:

  • 1995.06.08 PHP/FI 공개

  • 1995 php2.0, MySQL 지원 추가

  • 1997 php3.0

  • 2000 php4.0

  • 2008 php5.0

  • 이후 php6.0은 유니코드 인코딩을 완전히 해결하지 못하며 기본적으로 생산 라인에 적용되지 않습니다. 이는 기본적으로 단지 컨셉 제품일 뿐이며 php5.3.3 및 php5.3.4

에 많은 기능이 구현되어 있습니다.

공통 IDE(통합 개발 환경): 통합 개발 환경

  • Coda(mac)

  • PHPStrom

  • Adobe Dreamweaver

  • NetBeans

코드 강조 표시가 있는 일반 텍스트 편집기:

  • NodePad++

  • SublimeText

PHP의 장점

PHP 기능:

  • php는 C, Java, Prel 및 PHP 자체 구문을 고유하게 혼합합니다.

  • 동적 웹 페이지를 더 빠르게 실행할 수 있습니다. CGI나 Prel에 비해 PHP는 HTML 문서에 프로그램을 내장하여 실행하는 방식으로 HTML 편집을 모두 구현하는 CGI보다 실행 효율성이 훨씬 높습니다.

  • 거의 모든 널리 사용되는 데이터베이스 및 운영 체제 지원

  • PHP는 C, C++를 사용하여 프로그램 확장 가능

PHP 장점:

  • 오픈 소스 코드

  • 자유

  • 빠름

  • 강력한 크로스 플랫폼

  • 고효율

  • 그래픽 처리

  • 객체 -전문지향

  • 전문지향

PHP 기술 적용 :

  • 정적 페이지 생성

  • 데이터베이스 캐시

  • 프로세스 캐시

  • p+css w3c 표준

  • 큰 부하

  • 분산

  • 유연

  • MVC 지원

  • 스마트 모듈 엔진

PHP 인증 수준

  • Junior IFE: Index Front Engineer 프론트엔드 엔지니어

  • 중급 IPE: Index PHP 엔지니어 PHP 엔지니어

  • 상위 IAE: Index Architecture 엔지니어 아키텍처 엔지니어

6. echo, print_r, print, var_dump

* echo、print是php语句,var_dump和print_r是函数
* echo 输出一个或多个字符串,中间以逗号隔开,没有返回值是语言结构而不是真正的函数,因此不能作为表达式的一部分使用
* print也是php的一个关键字,有返回值 只能打印出简单类型变量的值(如int,string),如果字符串显示成功则返回true,否则返回false* print_r 可以打印出复杂类型变量的值(如数组、对象)以列表的形式显示,并以array、object开头,但print_r输出布尔值和NULL的结果没有意义,因为都是打印"\n",因此var_dump()函数更适合调试
* var_dump() 判断一个变量的类型和长度,并输出变量的数值

7. HTTP 상태 코드

2017 채용 시즌: PHP 면접 질문 요약!

2017 채용 시즌: PHP 면접 질문 요약!

2017 채용 시즌: PHP 면접 질문 요약!

2017 채용 시즌: PHP 면접 질문 요약!

2017 채용 시즌: PHP 면접 질문 요약!

2017 채용 시즌: PHP 면접 질문 요약!

일반 HTTP 상태 코드:

  • 200 - 요청 성공

  • 301 - 리소스(웹 페이지 등)가 다른 URL로 영구적으로 이스케이프됩니다.

  • 404 - 요청한 리소스(웹페이지 등)가 존재하지 않습니다

  • 505 - 내부 서버 오류

HTTP 상태 코드 분류:

  • 1** - 정보, 서버에서 받은 요청, 요청자가 필요합니다. 작업 계속

  • 2** - 성공, 작업이 성공적으로 수신 및 처리되었습니다.

  • 3** - 리디렉션, 요청을 완료하려면 추가 작업이 필요합니다

  • 4** - 클라이언트 오류, 요청에 구문 오류가 포함되어 있거나 요청을 완료할 수 없습니다.

  • 5** 서버 오류, 서버 도중 오류가 발생했습니다. 요청 처리

8. 매직 따옴표란 무엇인가요? 정의하는 과정에서 인코딩할 때 이스케이프하지 않고 런타임 중에 필요에 따라 이스케이프하는 것이 가장 좋습니다

9. 클라이언트 IP(int 필요) 및 서버 IP 코드를 얻는 방법

클라이언트:

$_SERVER["REMOTE_ADDR"];或者getenv('REMOTE_ADDR')
서버: ip2long进行转换
gethostbyname('www.baidu.com')10. 버전 관리를 위해 이러한 도구를 사용하세요

cvs, svn, vss, git

11. 데이터베이스 최적화 방법

    가장 적합한 필드 속성을 선택하고, 정의된 필드의 너비를 최대한 줄이고, '지방', '성별' 등 필드를 NOTNULL로 설정해 보세요. ENUM을 사용하는 것이 가장 좋습니다
  • 하위 쿼리 대신 조인(JOIN) 사용
  • 수동으로 생성된 임시 테이블 대신 유니온(UNION) 사용
  • 트랜잭션 처리
  • 테이블 잠금, 트랜잭션 처리 최적화
  • 외래 키 적용, 테이블 잠금 최적화
  • 建立索引

  • 优化查询语句

12、是否使用过模板引擎?使用的模板引擎的名字是?

Smarty:Smarty算是一种很老的PHP模板引擎了,它曾是我使用这门语言模板的最初选择。虽然它的更新已经不算频繁了,并且缺少新一代模板引擎所具有的部分特性,但是它仍然值得一看。

13、对于大流量网站,采用什么方法来解决访问量的问题

  • 确认服务器硬件是否能够支持当前的流量

  • 数据库读写分离,优化数据表

  • 程序功能规则,禁止外部的盗链

  • 控制大文件的下载

  • 使用不同主机分流主要流量

14、语句include和require的区别是什么?为避免多次包含同一文件,可以用(?)语句代替他们

  • require是无条件包含,也就是如果一个流程里加入require,无论条件成立与否都会先执行require,当文件不存在或者无法打开的时候,会提示错误,并且会终止程序执行

  • include有返回值,而require没有(可能因为如此require的速度比include快),如果被包含的文件不存在的化,那么会提示一个错误,但是程序会继续执行下去

注意:包含文件不存在或者语法错误的时候require是致命的,而include不是

  • require_once表示了只包含一次,避免了重复包含

15、谈谈mvc的认识

由模型、视图、控制器完成的应用程序,由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图

16、 说明php中传值与传引用的区别,并说明传值什么时候传引用?

变量默认总是传值赋值,那也就是说,当将一个表达式的值赋予一个变量时,整个表达式的值被赋值到目标变量,这意味着:当一个变量的赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量

php也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,成为了其别名或者指向)了原始变量。改动的新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个&符号加到将要赋值的变量前(源变量)

对象默认是传引用
对于较大是的数据,传引用比较好,这样可以节省内存的开销


17、isset、empty、is_null的区别

isset 判断变量是否定义或者是否为空

  变量存在返回ture,否则返回false
  变量定义不赋值返回false  unset一个变量,返回false
  变量赋值为null,返回false

empty:判断变量的值是否为空,能转换为false的都是空,为空返回true,反之返回false。

    "",0,"0",NULL,FALSE都认为为空,返回true
    没有任何属性的对象都认为是空

is_null:检测传入的值(值、变量、表达式)是否为null

    定义了,但是赋值为Null
    定义了,但是没有赋值    unset一个变量

18、前端调试的工具

  • Firefox的firebug

  • Chrome的开发工具

  • Emmet

  • JSON格式校验工具

19.    简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)(新浪网技术部)

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。
普通索引允许被索引的数据列包含重复的值。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。也就是说,唯一索引可以保证数据记录的唯一性。
主键,是一种特殊的唯一索引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字 PRIMARY KEY 来创建。
索引可以覆盖多个数据列,如像INDEX(columnA, columnB)索引,这就是联合索引。
索引可以极大的提高数据的查询速度,但是会降低插入、删除、更新表的速度,因为在执行这些写操作时,还要操作索引文件。

20.数据库中的事务是什么?

事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。ACID 四大特性,原子性、隔离性、一致性、持久性。

21. XSS 공격을 이해하시나요? 그것을 예방하는 방법은 무엇입니까?

XSS는 크로스 사이트 스크립팅 공격으로, 먼저 공격자가 특권 모드에서 구성한 스크립트를 실행한 후 안전하지 않은 Activex 컨트롤을 사용해 악성 행위를 수행합니다. .
htmlspecialchars() 함수를 사용하여 제출된 콘텐츠를 필터링하고 문자열의 특수 기호를 구체화합니다.

22. SQL 인젝션 취약점의 원인은 무엇인가요? 그것을 예방하는 방법은 무엇입니까?

SQL 인젝션 원인: 프로그램 개발 과정에서 표준 SQL 문 작성 및 특수 문자 필터링에 주의를 기울이지 않아 클라이언트가 전역 변수 POST를 통해 일부 SQL 문을 제출할 수 있었습니다. 정상적인 실행을 위해서는 GET을 사용합니다.

SQL 인젝션 방지 방법:
  1. 구성 파일에서 Magic_quotes_gpc 및 Magic_quotes_runtime 설정을 활성화하세요.

  2. SQL 문을 실행할 때 사용하세요. addlashes는 SQL 문을 변환합니다.

  3. SQL 문을 작성할 때 큰따옴표와 작은따옴표를 생략하지 마세요.

  4. SQL 문에서 업데이트, 삽입, 삭제, 선택, * 등 일부 키워드를 필터링합니다.

  5. 데이터베이스 테이블과 필드의 명명 능력을 향상시키고, 중요한 필드에는 프로그램의 특성에 따라 추측하기 어렵게 이름을 지정하세요.

  6. PHP 구성 파일에서 Register_globals를 off로 설정하고 전역 변수 등록을 끄세요.

  7. 오류 메시지를 제어하고 브라우저. 로그 파일에 오류 정보를 기록합니다.

23. PHP 웹사이트의 주요 공격 방식은 무엇인가요?

  1. 명령어 삽입

  2. 평가 삽입

  3. 클라이언트 스크립트 삽입

  4. 교차 사이트 스크립팅(XSS)

  5. SQL 주입

  6. 교차 사이트 요청
    위조, CSRF)

  7. 세션 하이재킹

  8. 세션 고정

  9. HTTP 응답 분할

  10. 파일 업로드 취약점(파일 업로드 공격)

  11. 디렉터리 순회(Directory Traversal)

  12. Remote Inclusion 공격(Remote Inclusion)

  13. 동적 변수
    평가)

  14. URL 공격(URL 공격)

  15. 양식 제출 스푸핑 양식
    Submissions

  16. HTTP 요청 스푸핑 공격(Spoofed HTTP Requests)

24. 프레임워크에는 단일 입구와 다중 입구, 단일 출입구의 장점과 단점은 무엇입니까?

  1. Duokou는 다양한 파일에 액세스하여 사용자 요청을 완료합니다. 단일 항목 전용 웹 프로그램은 모든 요청을 스크립트 파일로 보냅니다.

  2. 단일 입구로 권한을 더 쉽게 제어하고 http 요청에 대한 보안 검사를 용이하게 할 수 있습니다.
    단점: URL이 그다지 아름다워 보이지 않으며, 특히 검색 엔진에 친숙하지 않습니다.

25. 색인 생성은 매우 중요한 개념입니다. 색인 생성에 관한 몇 가지 질문에 대답해 주세요.

a) 색인 생성의 목적은 무엇입니까?
  1. 데이터 테이블의 특정 정보에 빠르게 액세스하고 검색 속도를 향상

  2. 고유한 인덱스를 생성하여 데이터 테이블의 각 행의 고유성을 보장합니다. 데이터베이스 테이블 섹스.

  3. 테이블 및 테이블 간 조인 가속화

  4. 데이터 검색을 위해 그룹화 및 정렬 절을 사용하면 그룹화 및 정렬 시간을 대폭 줄일 수 있습니다.

b) 인덱싱이 데이터베이스 시스템에 미치는 부정적인 영향은 무엇입니까?

부정적 영향:
인덱스를 생성하고 유지하는 데는 시간이 걸리며, 테이블이 데이터를 차지할 뿐만 아니라 데이터 양이 늘어나면 이 시간도 늘어납니다. 공간, 각 인덱스는 물리적 공간도 차지해야 합니다. 테이블이 추가, 삭제, 수정될 때 인덱스는 동적으로 유지되어야 하므로 데이터 유지 관리 속도가 줄어듭니다.

c) 데이터 테이블 색인화의 원칙은 무엇입니까?
  1. 가장 자주 사용되는 필드에 대한 색인을 생성하여 쿼리 범위를 좁힙니다.

  2. 정렬이 필요한 자주 사용되는 필드에 색인을 생성합니다

d) 어떤 상황에서 색인을 생성하는 것이 부적절합니까?
  1. 질문에 거의 포함되지 않는 컬럼이나 중복된 값이 많은 컬럼에 대해서는 인덱스를 생성하는 것이 적절하지 않습니다.

  2. 일부 특수 데이터 유형의 경우 텍스트 필드(텍스트) 등과 같은 인덱스를 생성하는 것이 적합하지 않습니다.

26. MySQL 데이터베이스에서 MyISAM과 InnoDB의 차이점을 간략하게 설명하세요.

다른 데이터베이스와 구별되는 가장 중요한 기능은 플러그인 테이블 스토리지 엔진입니다. 기억하세요: 스토리지 엔진은 데이터베이스가 아닌 테이블을 기반으로 합니다.

InnoDB와 MyISAM의 차이점:

InnoDB 스토리지 엔진: 주로 OLTP(온라인 트랜잭션 처리, 온라인 트랜잭션 처리) 애플리케이션을 위한 최초의 완전 지원 ACID입니다. 트랜잭션 저장 엔진(트랜잭션을 지원하는 BDB의 첫 번째 저장 엔진, 개발이 중단되었습니다).

기능:

  • 행 잠금 디자인, 외래 키 지원

  • Oracle 스타일과 유사한 일관된 비잠금 읽기를 지원합니다(즉, 읽기 작업은 기본적으로 잠금을 생성하지 않습니다).

  • InnoDB는 이를 논리적 테이블스페이스이며 InnoDB 자체에서 관리됩니다. MySQL 4.1 버전부터 각 InnoDB 스토리지 엔진 테이블은 독립적인 ibd 파일에 저장될 수 있습니다.

  • InnoDB는 MVCC(다중 버전 동시성 제어: 읽기는 쓰기 및 쓰기를 차단함)를 사용합니다. 읽기를 차단하지 않음) 높은 동시성을 확보하고 SQL 표준의 4가지 격리 수준(기본값은 REPEATABLE 수준)을 구현합니다.

  • InnoDB는 고성능 및 고가용성도 제공합니다. 버퍼 삽입, 이중 쓰기, 적응형 해시 인덱스, 미리 읽기 등의 기능

  • InnoDB는 클러스터링 방식을 사용하여 테이블에 데이터를 저장합니다. 기본 키(테이블을 생성할 때 기본 키가 명시적으로 지정되지 않은 경우 InnoDB는 각 행에 대해 6바이트 ROWID를 생성하고 이를 기본 키로 사용합니다.) InnoDB 테이블에는 세 개의 숨겨진 필드가 있습니다. 위에서 언급한 6바이트 DB_ROW_ID 외에도 6바이트 DB_TX_ID(트랜잭션 ID) 및 7바이트 DB_ROLL_PTR(해당 롤백 세그먼트의 주소를 가리킴)도 있습니다. 이는 innodb 모니터를 통해 확인할 수 있습니다.

  • MyISAM 스토리지 엔진:
  • 은 주로 OLAP(온라인 분석 처리, 온라인 분석 및 처리) 응용 프로그램.

기능: 트랜잭션을 지원하지 않지만 테이블 및 전체 텍스트 인덱스를 지원합니다. 작업 속도가 빠릅니다.

  • MyISAM 스토리지 엔진 테이블은 MYD와 MYI로 구성되며, MYD는 데이터 파일을 저장하는 데 사용되고 MYI는 인덱스 파일을 저장하는 데 사용됩니다. MySQL 데이터베이스는 인덱스 파일만 캐시하고 데이터 파일 캐싱은 운영 체제 자체에 맡겨집니다.

    MySQL 5.0 버전부터 MyISAM은 기본적으로 256T의 단일 테이블 데이터를 지원합니다.

  • 27. MySQL 외부 조인, 내부 조인, 셀프 조인의 차이점을 설명하세요

먼저 크로스 조인이 무엇인지:

크로스 조인은 데카르트 조인이라고도 합니다. product는 어떤 조건도 직접 사용하지 않는다는 의미입니다. 한 테이블의 모든 레코드를 다른 테이블의 모든 레코드와 일치시킵니다.

내부 조인은 조건만 있는 교차 연결입니다. 조건에 맞는 레코드는 특정 조건에 따라 필터링되어 결과에 나타나지 않습니다. 즉, 내부 조인은 일치하는 선만 연결합니다.

외부 조인 결과 집합에는 조인 조건을 충족하는 행뿐만 아니라 왼쪽 테이블, 오른쪽 테이블 또는 두 테이블의 에 있는 모든 데이터 행이 포함됩니다. 종류 상황을 차례로 왼쪽 외부 조인, 오른쪽 외부 조인, 전체 외부 조인이라고 합니다. 왼쪽 외부 조인(왼쪽 조인이라고도 함), 왼쪽 테이블이 기본 테이블이고 왼쪽 테이블의 모든 레코드가 결과 집합에 표시되며 오른쪽 테이블에서 일치하지 않는 레코드는 여전히 표시되며 오른쪽에는 해당 필드 값이 NULL로 채워집니다. 오른쪽 외부 조인(오른쪽 조인이라고도 함)은 오른쪽 테이블이 기본 테이블이고 오른쪽 테이블의 모든 레코드가 결과 집합에 나타납니다. 왼쪽 조인과 오른쪽 조인은 상호 교환 가능하며 MySQL은 현재 완전 외부 조인을 지원하지 않습니다.
28. 3개 이상의 MySQL 데이터베이스 스토리지 엔진 이름을 작성하세요(팁: 대소문자 구분 안 함)

MyISAM, InnoDB, BDB(BerkeleyDB), Merge, Memory(Heap), 예제 , Federated,

Archive, CSV, Blackhole, MaxDB 및 12개 이상의 엔진

29. 객체지향이란 무엇입니까? 주요 기능은 무엇입니까? 주요 원칙은 무엇입니까?


객체 지향은 프로그램의 재사용성을 향상시키고 프로그램 구조를 보다 명확하게 만드는 프로그램 설계 패턴입니다. 주요 기능은 캡슐화, 상속, 다형성입니다.

5가지 기본 원칙: 단일 책임 원칙, 개방형 및 폐쇄형 원칙, 종속성 원칙.

30. 정적 라우팅이란 무엇이며 그 특징은 무엇입니까?


참고 답변:

정적 라우팅은 시스템 관리자가 설계하고 구성합니다. 라우팅 테이블에 지정된 경로 게이트웨이 수가 제한되어 있고 네트워크 토폴로지가 자주 변경되지 않는 상황에 적합합니다. 단점은 네트워크 상태 변화에 동적으로 적응할 수 없다는 점이다. 네트워크 상태가 변하면 네트워크 관리자가 라우팅 테이블을 수정해야 한다.

동적 라우팅은 라우팅 프로토콜에 의해 동적으로 구성됩니다. 라우팅 프로토콜은 보유한 라우팅 정보를 교환하여 라우팅 테이블의 내용을 실시간으로 업데이트합니다. 동적 라우팅은 네트워크의 토폴로지를 자동으로 학습하고 라우팅 테이블을 업데이트할 수 있습니다. 단점은 라우팅 브로드캐스트 업데이트 정보가 많은 양의 네트워크 대역폭을 차지한다는 것입니다.

31. Memcache 캐시를 사용해 본 적이 있나요? 그렇다면 어떻게 작동하는지 간략하게 설명해 주실 수 있나요?

Memcahce는 해시 테이블을 사용하여 모든 데이터를 메모리에 저장합니다. 각 데이터는 키와 값으로 구성됩니다. 특정 값에 액세스하려면 먼저 해당 값을 찾아 결과를 반환합니다. .

Memcahce는 LRU 알고리즘을 사용하여 만료된 데이터를 점차적으로 삭제합니다.

32. 인기 있는 Ajax 프레임워크를 나열해 보세요. Ajax의 구현 원리는 무엇이며, Ajax에서 json은 어떤 역할을 하는지 설명해주세요.

인기 있는 Ajax 프레임워크로는 jQuery, Prototype, Dojo 및 MooTools가 있습니다.

Ajax의 작동 원리는 한 페이지의 지정된 위치가 다른 페이지의 모든 출력 콘텐츠를 로드할 수 있다는 것입니다. 이러한 방식으로 정적 페이지도 데이터베이스에서 반환된 데이터 정보를 얻을 수 있습니다. 따라서 Ajax 기술은 전체 페이지를 새로 고치지 않고도 정적 웹 페이지가 서버와 통신할 수 있도록 하여 사용자 대기 시간을 줄여 네트워크 트래픽을 줄이고 고객 경험의 친근감을 향상시킵니다.
Ajax를 사용하는 경우 데이터 전송, 즉 서버에서 클라이언트로 데이터를 반환하는 작업이 포함됩니다. 서버와 클라이언트는 데이터를 처리하기 위해 서로 다른 스크립트 언어를 사용하며, 이는 공통된 데이터 형식인 XML과 json을 필요로 합니다. 가장 일반적으로 사용되는 두 가지는 json이며 XML보다 간단합니다.

33. Myql의 트랜잭션 롤백 메커니즘 개요

트랜잭션은 사용자가 정의한 일련의 데이터베이스 작업입니다. 이러한 작업은 모두 수행되거나 전혀 수행되지 않습니다. 트랜잭션 롤백은 트랜잭션에 의해 완료된 데이터베이스에 대한 업데이트 작업을 취소하는 것을 의미합니다.

데이터베이스 내 서로 다른 두 테이블을 동시에 수정하고 싶은 경우, 트랜잭션이 아닌 경우 첫 번째 테이블을 수정하면 두 번째 테이블을 수정하는 과정에서 예외가 발생할 수 있으며, 현재는 두 번째 테이블만 수정되지 않은 상태이고 첫 번째 테이블은 수정된 상태입니다. 그리고 이를 트랜잭션으로 설정하면 첫 번째 테이블이 수정되고 두 번째 테이블이 비정상적으로 수정되어 수정이 불가능한 경우 첫 번째 테이블과 두 번째 테이블이 수정되지 않은 상태로 돌아가는 것을 트랜잭션 롤백이라고 합니다.


위 33개 질문에는 면접 질문 중 쉬운 것부터 어려운 것까지 나열되어 있습니다. 성공률이 높으니, 취업을 희망하는 모든 분들이 만족하실 수 있는 직장을 찾으시길 바라겠습니다!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.