新聞中心
小編給大家分享一下thinkphp面試題目示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
目前成都創(chuàng)新互聯(lián)公司已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、青島網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
1. 寫出字符串‘0’,分別在php和js中轉(zhuǎn)化布爾類型,值是true還是false?
答:
在php中
$a = '0'; $a = (bool) $a; var_dump($a);
值為false
在js中
官方說明:Note:If the value parameter is omitted, or is 0, -0, null, , false, undefined, or NaN, the object is set to false. Otherwise it is set to true (even with the string false)!
測(cè)試:
值為true
2. 簡(jiǎn)述一下優(yōu)化MySQL使用的方法以及使用到的工具和命令
答:
1.使用pgcc(pentium gcc)編譯器 該編譯器(http://www.goof.com/pcg/)針對(duì)運(yùn)行在奔騰處理器系統(tǒng)上的程序進(jìn)行優(yōu)化,用pgcc編譯mysql源代碼,總體性能可提高10%。當(dāng)然如果你的 5.確保運(yùn)用正確的編譯固然重要,但這只是成功的第一步,配置眾多的mysql變量同樣對(duì)服務(wù)器的正常運(yùn)行起關(guān)鍵作用。 你可以將這些變量的賦值存在一個(gè)配置文件中,以確保它們?cè)诿看螁?dòng)mysql時(shí)均起作用,這個(gè)配置文件就是my.cnf文件?!ysql已經(jīng)提供了幾個(gè)my.cnf文件的樣本,可在/usr/local/mysqld/share/mysql/目錄下找到。這些文件分別命名為my-small.cnf、 my-medium.cnf、my-large.cnf和my-huge.cnf,規(guī)模說明可在描述配置文件適用的系統(tǒng)類型標(biāo)題中找到。 如果在只有相當(dāng)少內(nèi)存的系統(tǒng)上運(yùn)行mysql,而且只是偶爾的用一下,那么my-small.cnf會(huì)比較理想,因?yàn)樗頼ysqld只使用最少的資源。類似地,如果你計(jì)劃構(gòu)建電子商務(wù)超市,而且系統(tǒng)擁有2g內(nèi)存,那么你可能要用到mysql-huge.cnf文件了?!?/p> 為了利用這些文件中的一個(gè),你需要復(fù)制一個(gè)最適合需求的文件,改名為my.cnf。你可以選擇使用配置文件三種作用范圍的一種: global:將my.cnf文件復(fù)制到服務(wù)器的/etc目錄下,這使得配置文件中的變量作用于全局,即對(duì)所有服務(wù)器上的mysql數(shù)據(jù)庫服務(wù)器有效?!?/p> local:將my.cnf文件復(fù)制到[mysql-install-dir]/var/目錄下,使得my.cnf作用于特定的服務(wù)器。[mysql-install-dir]表示mysql安裝目錄?!?/p> user:你可以再限制作用于特定的用戶,將my.cnf復(fù)制到用戶的根目錄下。 究竟如何設(shè)置my.cnf中的這些變量呢?更進(jìn)一步說,你可以設(shè)置哪一個(gè)變量。 雖然所用變量對(duì)mysql服務(wù)器相對(duì)通用,每一個(gè)變量與mysql的的某些組件有更特定的關(guān)系。如變量max_connects歸在mysqld類別下。執(zhí)行下列命令即可知道:%>/usr/local/mysql/libexec/mysqld--help 它顯示大量的選項(xiàng)及與mysqld相關(guān)的變量。 你可以很容易地在該行文字之下找出變量: 然后你可以如下設(shè)置my.cnf中的那些變量: 它設(shè)置mysql服務(wù)器的最大并發(fā)連接數(shù)為100。要確保在my.cnf文件中的[mysqld]標(biāo)題下插入變量設(shè)置。 事務(wù)安全 dbd berkeley db(dbd)表是支持事務(wù)處理的表,由sleepycat軟件公司(http://www.sleepycat.com)開發(fā)。它提供mysql用戶期待已久的功能-事務(wù)控制。 事務(wù)控制在任何數(shù)據(jù)庫系統(tǒng)中都是一個(gè)極有價(jià)值的功能,因?yàn)樗鼈兇_保一組命令能成功地執(zhí)行?!?/p> 非事務(wù)安全 heap heap表是mysql中存取數(shù)據(jù)最快的表。這是因?yàn)樗麄兪褂么鎯?chǔ)在動(dòng)態(tài)內(nèi)存中的一個(gè)哈希索引。另一個(gè)要點(diǎn)是如果mysql或服務(wù)器崩潰,數(shù)據(jù)將丟失?!?/p> isam isam表是早期mysql版本的缺省表類型,直到myiasm開發(fā)出來。建議不要再使用它?!?/p> merge merge是一個(gè)有趣的新類型,在3.23.25之后出現(xiàn)。一個(gè)merge表實(shí)際上是一個(gè)相同myisam表的集合,合并成一個(gè)表,主要是為了效率原因。這樣可以提高速度、搜索效率、修復(fù)效率并節(jié)省磁盤空間。 myiasm 這是mysql的缺省表類型。它基于iasm代碼,但有很多有用的擴(kuò)展。myiasm比較好的原因: myiasm表小于iasm表,所以使用較少資源。 myiasm表在不同的平臺(tái)上二進(jìn)制層可移植。 更大的鍵碼尺寸,更大的鍵碼上限?!?/p> 指定表類型 你可在創(chuàng)建表時(shí)指定表的類型。下例創(chuàng)建一個(gè)heap表: mysql>create table email_addresses type=heap ( ->email char(55) not null, ->name char(30) not null, ->primary key(email) ); bdb表需要一些配置工作,參見http://www.mysql.com/doc/b/d/bdb_overview.html。 更多的表類型 為了使mysql管理工作更有趣,即將發(fā)布的mysql 4.0將提供兩種新的表類型,稱為innobase和gemeni。 show 你可能有興趣知道m(xù)ysql服務(wù)器究竟更了什么,下列命令給出一個(gè)總結(jié): 、 它給出了一個(gè)相當(dāng)長(zhǎng)的狀態(tài)變量及其值的列表。有些變量包含了異常終止客戶的數(shù)量、異常終止連接的數(shù)量、連接嘗試的次數(shù)、最大并發(fā)連接數(shù)和大量其他有用的信息。這些信息對(duì)找出系統(tǒng)問題和低效極具價(jià)值?!how還能做更多的事情。它可以顯示關(guān)于日志文件、特定數(shù)據(jù)庫、表、索引、進(jìn)程和權(quán)限表中有價(jià)值的信息。詳見mysql手冊(cè)?!?/p> explain 當(dāng)你面對(duì)select語句時(shí),explain解釋select命令如何被處理。這不僅對(duì)決定是否應(yīng)該增加一個(gè)索引,而且對(duì)決定一個(gè)復(fù)雜的join如何被mysql處理都是有幫助的?!?/p> optimize optimize語句允許你恢復(fù)空間和合并數(shù)據(jù)文件碎片,對(duì)包含變長(zhǎng)行的表進(jìn)行了大量更新和刪除后,這樣做特別重要。optimize目前只工作于myiasm和bdb表。 5. 一張mysql大數(shù)據(jù)表有幾千萬數(shù)據(jù),但有一自增id字段,且為主鍵,要遍歷此表的所有數(shù)據(jù),寫出有效的方法和sql(禁止使用limit n,m)。 答: 案例分析:數(shù)據(jù)表 collect ( id, title ,info ,vtype) 就這4個(gè)字段,其中 title 用定長(zhǎng),info 用text, id 是逐漸,vtype是tinyint,vtype是索引。10萬數(shù)據(jù)的效果。 select id,title from collect limit 1000,10; 基本上0.01秒就OK select id,title from collect limit 90000,10; 8-9秒完成 select id from collect order by id limit 90000,10; 0.04秒就OK。 為什么?因?yàn)橛昧薸d主鍵做索引當(dāng)然快。 改進(jìn)方法:select id,title from collect where id>=(select id from collect order by id limit 90000,1) limit 10;; select id from collect where vtype=1 order by id limit 90000,10; 很慢,用了8-9秒! vtype 做了索引了啊?怎么會(huì)慢呢?vtype做了索引是不錯(cuò),你直接 select id from collect where vtype=1 limit 1000,10; 是很快的,基本上0.05秒,可是提高90倍,從9萬開始,那就是0.05*90=4.5秒的速度了。 分表的方法: 建一個(gè)索引表: t (id,title,vtype) 并設(shè)置成定長(zhǎng),然后做分頁,分頁出結(jié)果再到 collect 里面去找info 。 是否可行呢?實(shí)驗(yàn)下就知道了。 10萬條記錄到 t(id,title,vtype) 里,數(shù)據(jù)表大小20M左右。用select id from t where vtype=1 order by id limit 90000,10; 很快了?;旧?.1-0.2秒可以跑完。 其實(shí)這樣做還是全表掃描,只是因?yàn)閿?shù)據(jù)量小,只有10萬才快。OK, 來個(gè)瘋狂的實(shí)驗(yàn),加到100萬條,測(cè)試性能。 加了10倍的數(shù)據(jù),馬上t表就到了200多M,而且是定長(zhǎng)。還是剛才的查詢語句,時(shí)間是0.1-0.2秒完成!分表性能沒問題?錯(cuò)!因?yàn)槲覀兊膌imit還是9萬,所以快。給個(gè)大的,90萬開始select id from t where vtype=1 order by id limit 900000,10; 看看結(jié)果,時(shí)間是1-2秒! 怪不得有人說 discuz到了100萬條記錄就會(huì)很慢,我相信這是真的,這個(gè)和數(shù)據(jù)庫設(shè)計(jì)有關(guān)! 開始測(cè)試結(jié)論是: 30萬數(shù)據(jù),用分表法可行,超過30萬他的速度會(huì)慢道你無法忍受!當(dāng)然如果用分表+我這種方法,那是絕對(duì)完美的。但是用了我這種方法后,不用分表也可以完美解決! 不分表的方法: 復(fù)合索引!search(vtype,id) 這樣的索引 select id from collect where vtype=1 limit 90000,10; 非??欤?.04秒完成! 再測(cè)試: select id ,title from collect where vtype=1 limit 90000,10; 非常遺憾,8-9秒,沒走search索引! 再測(cè)試:search(id,vtype),還是select id 這個(gè)語句,也非常遺憾,0.5秒。 綜上:如果對(duì)于有where 條件,又想走索引用limit的,必須設(shè)計(jì)一個(gè)索引,將where 放第一位,limit用到的主鍵放第2位,而且只能select 主鍵! 6. Mysql有一個(gè)聯(lián)合索引KEY(a,b,c),a為tinyint類型(長(zhǎng)度為1),b為mediumint類型(長(zhǎng)度為3),c為int類型(長(zhǎng)度4)。寫出條件where a=1 and c=3所使用到此索引的長(zhǎng)度。 答:網(wǎng)上沒找到答案。 7. InnoDB引擎中,如何開啟一個(gè)排它的讀寫鎖。 答: 8. 簡(jiǎn)述json和jsonp的區(qū)別以及優(yōu)缺點(diǎn),應(yīng)用場(chǎng)景。 答:說到AJAX就會(huì)不可避免的面臨兩個(gè)問題,第一個(gè)是AJAX以何種格式來交換數(shù)據(jù)?第二個(gè)是跨域的需求如何解決?這兩個(gè)問題目前都有不同的解決方案,比如數(shù)據(jù)可以用自定義字符串或者用xml來描述,跨域可以通過服務(wù)器端代理來解決。 但到目前為止最被推崇或者說首選的方案還是用JSON來傳數(shù)據(jù),靠JSONP來跨域。 9. 以下js代碼有什么潛在問題(點(diǎn)擊每個(gè)div彈出相應(yīng)的序號(hào))?該如何解決? 答:沒找到答案 10. 寫一個(gè)遍歷目錄下所有文件以及子目錄的函數(shù) 答: 11.將以下jquery選擇符翻譯成中文描述: 答: 12. Cookie、session的聯(lián)系和區(qū)別,多臺(tái)web服務(wù)器如何共享session 答: Session采用鍵值對(duì) , 也就是說ID存放客戶端 , 而值放在服務(wù)器端 , 是通過用戶的ID去找服務(wù)器上對(duì)應(yīng)的值 , 這種方式值放置在服務(wù)器端 ,有個(gè)時(shí)間限制 ,時(shí)間到則服務(wù)器自動(dòng)釋放. Cookies則有兩種方法 , 一種方法是把值保存在瀏覽器的變量中 , 當(dāng)瀏覽器關(guān)閉時(shí)結(jié)束 , 另一種方法是保存在硬盤中 , 只要時(shí)間不過期 , 下次還可使用. Session 是由應(yīng)用服務(wù)器維持的一個(gè)服務(wù)器端的存儲(chǔ)空間,用戶在連接服務(wù)器時(shí),會(huì)由服務(wù)器生成一個(gè)唯一的SessionID,用該SessionID 為標(biāo)識(shí)符來存取服務(wù)器端的Session存儲(chǔ)空間。而SessionID這一數(shù)據(jù)則是保存到客戶端,用Cookie保存的,用戶提交頁面時(shí),會(huì)將這一 SessionID提交到服務(wù)器端,來存取Session數(shù)據(jù)。這一過程,是不用開發(fā)人員干預(yù)的。所以一旦客戶端禁用Cookie,那么Session也 會(huì)失效。 服務(wù)器也可以通過URL重寫的方式來傳遞SessionID的值,因此不是完全依賴Cookie。如果客戶端Cookie禁用,則服務(wù)器可以自動(dòng)通過重寫URL的方式來保存Session的值,并且這個(gè)過程對(duì)程序員透明。 可以試一下,即使不寫Cookie,在使用request.getCookies();取出的Cookie數(shù)組的長(zhǎng)度也是1,而這個(gè)Cookie的名字就是JSESSIONID,還有一個(gè)很長(zhǎng)的二進(jìn)制的字符串,是SessionID的值。 共享session的方法:http://blog.csdn.net/heiyeshuwu/article/details/521010 13. 有以下數(shù)據(jù) $_GET[‘int’] 整數(shù) $_GET[‘float’] 浮點(diǎn) $_GET[‘text’] 文本,不需要展示html $_GET[‘content’] 文本,需要展示html 以上數(shù)據(jù)該各用什么方法過濾并保證安全?數(shù)據(jù)入庫之前需要做什么處理? 14. 寫出匹配,除div,span,img以外的任何html標(biāo)簽的正則(不需要匹配子標(biāo)簽)。 15. 寫出正則表達(dá)式中,以下關(guān)鍵字的含義? 16. 寫出多進(jìn)程并發(fā)同時(shí),讀寫同一文件時(shí),能保證文件內(nèi)容完整的代碼(讀寫文件的代碼) 17. 面向?qū)ο笾?,self與$this的區(qū)別是? 答:this是指向當(dāng)前對(duì)象的指針(姑且用C里面的指針來看吧),self是指向當(dāng)前類的指針,parent是指向父類的指針 18. 寫出linux中,查找后綴名為.txt的,且內(nèi)容包含delete的文件,找出并刪除的命令是? 以上是“thinkphp面試題目示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!possible variables for option --set-variable (-o) are
set-variable = max_connections=100
mysql>show status;
http://blog.csdn.net/zqtsx/article/details/8929625
lock tables test write; //經(jīng)過測(cè)試啟用另一個(gè)mysql回話都不能讀和寫test表,表明此答案是正確的
http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html
var es=document.getElementsByTagName(‘div’);
for(var i in es){
es.onclick=function(){
alert(i);
}
}
';
traverse($sub_dir);
} else { //如果是文件,直接輸出
echo 'File in Directory ' . $path . ': ' . $file . '
';
}
}
}$(“#d div.cls input[type=text][name^=text_]”);
$ +? ^ [^] ?
find / -type f -name "*.text" | xargs grep "delete" -delete
新聞名稱:thinkphp面試題目示例
網(wǎng)址分享:http://fisionsoft.com.cn/article/pjssgo.html