(1) 选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置 not null, 例如’省份,性别’, 最好设置为 enum
(2) 使用连接(join)来代替子查询:
(3) 使用联合 (union) 来代替手动创建的临时表
(4) 事务处理:
(5) 锁定表,优化事务处理:
(6) 使用外键,优化锁定表
(7) 建立索引
(8) 优化 sql 语句
或者
(1). 数据库设计方面,这是 dba 和 architect 的责任,设计结构良好的数据库,必要的时候,去正规化 (英文是这个:denormalize, 中文翻译成啥我不知道), 允许部分数据冗余,避免 join 操作,以提高查询效率
(2). 系统架构设计方面,表散列,把海量数据散列到几个不同的表里面。快慢表,快表只留最新数据,慢表是历史存档。集群,主服务器 read & write, 从服务器 read only, 或者 n 台服务器,各机器互为 master
3).(1) 和 (2) 超越 php programmer 的要求了,会更好,不会没关系。检查有没有少加索引
(4). 写高效的 sql 语句,看看有没有写低效的 sql 语句,比如生成笛卡尔积的全连接啊,大量的 group by 和 order by, 没有 limit 等等。必要的时候,把数据库逻辑封装到 dbms 端的存储过程里面。缓存查询结果,explain 每一个 sql 语句
(5). 所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,lect count (*) … where article_id = ? 就可以了,不要先 lect * … where article_id = ? 然后 msql_num_rows.只传送必须的 sql 语句,比如修改文章的时候,如果用户只修改了标题,那就 update … t title = ? where article_id = ? 不要 t content = ?(大文本)
(6). 必要的时候用不同的存储引擎。比如 innodb 可以减少死锁.heap 可以提高一个数量级的查询速度
2、用 php 打印出前一天的时间格式是 2020-3-18 22:21:21
$time=date(‘y-m-d h:i:s’,strtotime(‘-1,days’))echo $time;
3、写一段 js 代码来实现图片的幻灯片形式展示
<script> $(function(){ //页码 var page=1; //每页显示数 var total=4; //点下一页的孰视之时候执行 $('span.next').click(function(){ //通过它找到div.v_show var $v_show=$(this).parents('div.v_show'); //通过div.v_show再找到v_content var $v_content=$v_show.children('.v_content'); //v_content找到下面的所有的li var $list=$v_content.children('.v_content_list'); //总条数 li.length得到总条数 var $li=$list.find('li'); var $count=math.ceil($li.length/total); var $width=$v_content.width(); if(page==$count){ 小学生寒假日记 $list.animate({left:'0px'},500); page=1; }el{ $list.animate({left:'-='+$width+'px'},500); page++; } $('.highlight_tip span').eq(page-1).addclass('current').siblings().removeclass('current'); }) $('span.prev').click(function(){ //通过它找到div.v_show var $v_show=$(this).parents('div.v_show'); //通过div.v_show再找到v_content var $v_content=$v_show.children('.v_content'); //v_content找到下面的所有的li var $list=$v_content.children('.v_content_list'); //总条数 li.length得到总条数 var $li=$list.find('li'); var $count=math.ceil($li.length/total); var $width=$v_content.width(); if(page==1){ $list.animate({left:'-='+(($count-1)*$width)+'px'},500); page=4; }el{ $list.animate({left:'+='+$width+'px'},500); page--; } $('.highlight_tip span').eq(page-1).addclass('current').siblings().removeclass('current'); }) })</script>
首先建立数据表,其中字段 uid 与用户表 id 相关联,字段 sid 与被发送信息的用户相关联,当发送信息时,将内容保存到数据库中,间隔一定时间查询数据库是否有与用户相关连的信息存储,若有与用户相关联的信息就遍历输出出来。
如:
$a=’/a/b/c/d/e.php’$b=’/a/b/12/34/c.php’计算出 $b 相对于 $a 的相对路径应该是../../c/d$na=explode('/',$a);$nb=explode('/',$b);$numa=count($na);$numb=count($nb);$max=$numa>$numb?$numa:$numb;for($i=0;$i<$max-1;$i++){ if($na[$i]!=$nb[$i]){ $up.='../'; $path.=$na[$i]."/"; }}echo $relpath=$up.$path;
要求:1 不要使用 qsort 等系统内置排序函数。
2 请使用你认为最快最优的方式实现该函数并使排序的复杂度最低
<?php function quicksort($arr) { $len 形容阳光的词语 = count($arr); if($len <= 1) { return $arr; } $key = $arr[0]; $left_arr = array(); $right_arr = array(); for($i=1; $i<$len; $i++){ if($arr[$i] <= $key){ $left_arr[] = $arr[$i]; } el { $right_arr[] = $arr[$i]; } } $left_arr = quicksort($left_arr); $right_arr = quicksort($right_arr); return array_merge($left_arr,array($key),$right_arr); }萧敬腾 超级星光大道
table payment( id int unsigned auto_increment, ur_id int unsigned comment ‘用户id’, quantity smallint unsigned comment ‘本次购买产品数量’, pay_time timestamp comment ‘购买时间’, primary key(id))
用户每访问成功付款一笔订单 (从进入到离开), 会增加一条记录,记录用户的 id (ur_id),以及购买的产品数量。比如:1、208,2 //208 这个用户购买 2 个产品
inrt into payment (ur_id,quantity)values(‘***’,’***’)
1)请写出一个 sql 语句挑出用户(id=100)最近购买的 10 条订单。
lect u_id,quantity,pay_time form payment where id=100 order by pay_time desc;
2)请写一个 sql 语句挑出用户(id=100)最近】购买的第 10 到第 20 条订单 (共 10 个)
lect u_id,quantity,pay_time form payment where id=100 order by pay_time desc limit 10,10;
3) 请写出一个 sql 语句挑出购买产品数最多的 10 个用户 (ur_id) 和对应购买的产品总数。
lect u_id,sum(quantity) total,pay_time form payment group by u_id order by total desc limit 10;
8、请写一个 sql 语句。输出购买产品数分别等于 1,2,3,4,5,6,7,8,9,10 的用户数量,如果某个数量对应的用户数为 0,可以不输出。
lect count(id) from payment where quantity in (1,2,3,4,5.6,7,8,9,10) group by quantity
2020最新php面试题(附带答案)
分享一波腾讯php面试题
迎新晚会主持人稿2019年php最新面试题(含答案)
redis 高级面试题 学会这些还怕进不了大厂?
面试官三年经验php程序员知识点汇总
php面试题之php核心技术
掌握 redis这些 知识点,面试官一定觉得你很 nb
php 经典面试题集
更多学习内容请访问:
腾讯t3-t4标准精品php架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)
本文发布于:2023-04-08 09:52:26,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/0cca830a4883a9b91fb983a52ec58bc1.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:程序员找工作必备 PHP 基础面试题.doc
本文 PDF 下载地址:程序员找工作必备 PHP 基础面试题.pdf
留言与评论(共有 0 条评论) |