请说明 PHP 中传值与传引用的区别,什么时候传值什么时候传引用?

  • 按值传递:函数范围内对值的任何改变在函数外部都会被忽略
  • 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
  • 优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处

MySQL数据库中的字段类型varchar和char的主要区别

  • Varchar是变长,节省存储空间,char是固定长度。查找效率要char型快,因为varchar是非定长,必须先查找长度,然后进行数据的提取,比char定长类型多了一个步骤,所以效率低一些

MySQL数据库的常用存储引擎以及它们的区别

  • MyISAM:不支持事务,表锁,易产生碎片,要经常优化,读写速度较快,支持全文索引。
  • InnoDB:支持事务,行锁,有崩溃恢复能力。读写速度比MyISAM慢,5.6之后支持全文索引。
    存储引擎是基于表的,而不是数据库

SESSION 与 COOKIE的区别是什么

  • SESSION存储在服务器端,COOKIE保存在客户端。Session比较安全,cookie用某些手段可以修改,不安全。Session依赖于cookie进行传递。禁用cookie后,session还可以使用,在存储session的文件中,生成sessionID,通过get传参的方式将sessionID传到要实现session共享的页面,读取sessionID,从而从session中获取数据。 建议查找session与cookie这方面的详细教程

include和require的区别是什么

  • require是无条件包含,也就是如果一个流程里加入require,无论条件成立与否都会先执行require,当文件不存在或者无法打开的时候,会提示错误,并且会终止程序执行 include有返回值,而require没有(可能因为如此require的速度比include快),如果被包含的文件不存在的化,那么会提示一个错误,但是程序会继续执行下去

PHP 数组排序

  • sort() - 以升序对数组排序
  • rsort() - 以降序对数组排序
  • asort() - 根据值,以升序对关联数组进行排序
  • ksort() - 根据键,以升序对关联数组进行排序
  • arsort() - 根据值,以降序对关联数组进行排序
  • krsort() - 根据键,以降序对关联数组进行排序

优化MYSQL数据库的方法

  • 选择最有效率的表名顺序
  • WHERE子句中的连接顺序
  • SELECT子句中避免使用‘*’
  • 用Where子句替换HAVING子句
  • 通过内部函数提高SQL效率
  • 避免在索引列上使用计算。
  • 提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉。
  • 选取最适用的字段属性,应该尽量把字段设置为NOT NULL
  • 使用连接(JOIN)来代替子查询(Sub-Queries)
  • 使用联合(UNION)来代替手动创建的临时表
  • 尽量少使用 LIKE 关键字和通配符
  • 使用事务和外键

MySQL主从备份的原理?

  • mysql支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器
最后修改:2022 年 11 月 16 日 10 : 07 PM
如果觉得我的文章对你有用,请随意赞赏