in 和 exists 区别
in是先子查询 而exists 是先外表查询
区别及应用场景
in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了 ,另外IN时不对NULL进行处理。
联合索引如何建立 联合索引的命中原理 最左原则
将多个单个索引建立在一起就是联合索引 联合索引命中规则 最左原则 a,b,c索引 所有要命中都要带上a
设计模式 :单例模式 工厂模式 好处与坏处 构造函数有哪些
八大设计模式 https://www.cnblogs.com/yuanwanli/p/8796402.html
每次请求都会去重新连接数据库 但是如果是在cli模式下 也会新建PDO对象 不过PDO扩展共享数据库连接
构造函数 在实例化前执行 析构函数 在实例被删除销毁 释放内存 PHP自带回收机制 所以无所谓析构
分表规则
制定分表规则 user_01 user_30 的规则 按照每个表的大小去读取 它属于哪张表 链表的时候 只有有关user 都得提前经过此方法
分页规则
当数据量不是很多的时候 可以采用page limit 规则去读取数据 但是当数据量很大的时候 就需要根据最新的一条数据id 来读取比id大的 limit的值
而在分表规则下的分页需要考虑 page page页数为user_01的最后一页的时候 需要去读取user_02的数据
存储过程与函数的区别
1、存储过程用户在数据库中完成特定操作或者任务(如插入,删除等),函数用于返回特定的数据。
2、存储过程声明用procedure,函数用function。
3、存储过程不需要返回类型,函数必须要返回类型。
4、存储过程可作为独立的pl-sql执行,函数不能作为独立的plsql执行,必须作为表达式的一部分。
5、存储过程只能通过out和in/out来返回值,函数除了可以使用out,in/out以外,还可以使用return返回值。
6、sql语句(DML或SELECT)中不可用调用存储过程,而函数可以。
适用场合:
1、如果需要返回多个值和不返回值,就使用存储过程;如果只需要返回一个值,就使用函数。
2、存储过程一般用于执行一个指定的动作,函数一般用于计算和返回一个值。
3、可以再SQL内部调用函数来完成复杂的计算问题,但不能调用存储过程。
存储过程与存储函数的区别和联系
相同点:1.创建语法结构相似,都可以携带多个传入参数和传出参数。
2.都是一次编译,多次执行。
不同点:1.存储过程定义关键字用procedure,函数定义用function。
2.存储过程中不能用return返回值,但函数中可以,而且函数中必须有return子句。
3.执行方式略有不同,存储过程的执行方式有两种(1.使用execute2.使用begin和end),函数除了存储过程的两种方式外,还可以当做表达式使用,例如放在select中(select f1() form dual;)。
总结:如果只有一个返回值,用存储函数,否则,一般用存储过程。
一个会场一千人左右同时提交数据 如何优化
不使用apache 换成使用nginx
那apache与nginx的差别
apache比较稳定 成熟 少bug 对PHP支持 apache在处理动态请求有优势,一般动态请求要apache去做 一个连接对应一个进程
nginx nginx处理静态文件好 支持高并发连接,每秒最多的并发连接请求理论可以达到50000个 稳定性较差 一个连接对应多个进程 一个进程死掉时,会影响到多个用户的使用,稳定性差
apache优化
修改apache配置日志 减少访问压力
这个问题可以参考此文章 https://blog.youkuaiyun.com/tai532439904/article/details/78484342?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
你如何对整个网站优化
数据库建表的时候 就应该考虑好多对应的键值 不应该都是255 需要考虑实际需求去定义键值
数据库建立索引 对where 连表 唯一性比较强的字段建立索引
sql语句优化 尽量少使用连表 分组那种全表搜索的方法
多使用缓存 例如订单还未全付款的那种 或者是数据很少做修改的 存缓存 读取数据优先读取缓存
前端将多个js请求合成一个请求
控制大文件的下载
前端商品使用懒加载 流加载 如果前端图片数量大 可以使用合成图片 服务器优先考虑阿里云服务器那种
不适合自己的服务器
session与cookie的区别是什么 请从协议,产生的原因与作用说明?
session是存在于服务器 cookie是存在于本机 session是基于cookie运行的 http是无状态的 session想获取到自身ID还是得靠传输过来的cookie id来获取
负载均衡
就是用户连接服务器 中间多了个中间商赚差价 为了怕服务器宕机 多架设一台服务器 要是负载均衡器宕机后 也会使其失效 则就要多建设一个负载均衡器 负载均衡多个则形成了集群
短信接口如何防止盗刷
在短信接口验证方面在加上一个后端传输的图文接口 图文接口正确才可以进行短信验证
对每个号码 每天验证次数进行限制
有什么意见或者不同的看法可以下方评论一下 同时也欢迎补充或修改 1023720898@qq.com