當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 新余OA > 新余網(wǎng)站建設(shè)公司
PHP開發(fā)者經(jīng)常犯的幾個MySQL錯誤
1.運用MyISAM而不是InnoDB
完全錯誤,辯駁來由:
起首原文說MyISAM是默許運用得,而實踐上到了MySQL 5.5.x,InnoDB曾經(jīng)成為了默許得表引擎。
別的,簡略得運用InnoDB不是處理一切問題得辦法,盲目得運用甚至?xí)故褂霉δ芟陆?0%甚至40%。
最佳辦法照樣針對詳細營業(yè)詳細處置,例如論壇中版塊表,新聞分類表,各類碼表等長工夫不操作得表,照樣要用功能優(yōu)異得MyISAM引擎。
而需求用到事務(wù)處置得例如用戶、賬目、流水等嚴(yán)厲要求數(shù)據(jù)完好性和時序性得,則需求用InnoDB引擎,而且使用也要用功德務(wù)處置機制。當(dāng)然,事務(wù)處置必定要帶來很多得功能損耗,然則這在簡略高并發(fā)使用上是必需得。
最終,外鍵約束在公共web互聯(lián)網(wǎng)使用上普通是不必得,由于他會嚴(yán)峻影響功能。數(shù)據(jù)完好性照樣靠順序員或許使用架構(gòu)自身得強健來維護。而正軌得第三范式只是在企業(yè)泌部MIS系統(tǒng)和12306這種網(wǎng)站上運用。
2.運用PHP得mysql辦法
不完全錯,但要酌情選用:
mysqli雖然好,然則不是一切得效勞器都為PHP編譯了mysqli得支撐。
當(dāng)你得使用假如是能確定只用本人擺設(shè)得效勞器,而使用也是完全本人開拓,則mysqli是最好得選擇。
然則一旦你得使用有能夠擺設(shè)在虛擬主機或許由其別人擺設(shè)(例如散布式項目),照樣老誠懇實運用mysql函數(shù)集吧,好好封裝一下或許運用成熟框架根絕sql注入。
3.但是濾用戶輸入
這一點不必說了,要么MagicQuote,要么選用成熟框架。sql注入老話題了。
4.不運用UTF-8
大局部狀況下對,但也要仔細思索:
要曉得,一個UTF-8字符占3個字節(jié),所以比GBK等其他編碼得文件大33%。換句話說,一樣得網(wǎng)頁用UTF-8編碼假如是100KB,那么換成GBK編碼則只要66KB。所以即使你得PHP確定要用UTF-8,那么前端頁面也要依據(jù)狀況選擇需求得編碼。然則,假如PHP用UTF-8,前端模版是GBK,再加上模版引擎不強壯,那么轉(zhuǎn)碼任務(wù)夠你受得。所以盡能夠得選用本人需求得編碼,而不是簡略得選擇UTF-8了事。
最終煩瑣一句:UTF-8下:strlen("我")=3,而GBK下:strlen("我")=2
5.該用SQL得當(dāng)?shù)剡\用PHP
相同酌情思索:
例如,有些人習(xí)氣在建表時,默許值填寫CURRENT_TIMESTAMP,用來到達注冊工夫、發(fā)帖工夫得結(jié)果。 或許在工夫判別得SQL語句中,寫相似SELECT x FROM tab1 WHERE regdate < UNIX_TIMESTAMP()。那么我只能說,你為系統(tǒng)埋下了很蔭蔽得BUG。由于數(shù)據(jù)庫和使用往往不在統(tǒng)一臺機械上,工夫很輕易呈現(xiàn)偏向。當(dāng)你一套使用得工夫參照禁絕確時,就會呈現(xiàn)很大得問題。
準(zhǔn)確做法是:不要運用MySQL得任何工夫函數(shù),而是在使用里核算工夫。假如是散布式使用,必然要有工夫效勞器來一致治理工夫。
而文中說得一些MySQL數(shù)學(xué)函數(shù) ,也是要慎用。由于在大型使用中,數(shù)據(jù)庫得擔(dān)負往往是最大得,而復(fù)雜得WHERE語句又是形成慢查詢得首惡。所以,要把核算盡能夠得放在廉價得、不影響全局不變得使用效勞器上,而不是中心數(shù)據(jù)庫上。
6.不優(yōu)化查詢
這點也不必說了,大型使用上甚至不答應(yīng)運用各類JOIN,哪怕生寫兩條查詢,查回來在用PHP兼并數(shù)據(jù)。
7.運用錯誤得數(shù)據(jù)類型
INT,TinyINT,VARCHAR,CHAR,TEXT這些字段類型得合理選用無可厚非。
而Date、DateTime、TIMESTAMP這三品種型,在大型使用中是絕對不成以運用得,而是要用INT(10) UNSIGNED替代。
一個是功能,別的就是使用中尤其是PHP對UNIX_TIMESTAMP工夫戳得轉(zhuǎn)化真實太便利了。用Date要輸出各類工夫花樣反而費事。
8.在SELECT查詢中運用*
共勉
9.索引缺乏或許過度索引
索引是必需得,然則假如索引都處理不了得查詢,思索memcache或許nosql處理方案吧。
10.不備份
這條是作者充數(shù)么?
11.別的:不思索其他數(shù)據(jù)庫
這條相當(dāng)準(zhǔn)確。使用中不只要針對使用選擇其他數(shù)據(jù)庫,甚至還要針對詳細得營業(yè)類型,在統(tǒng)一套使用中并行運用多種數(shù)據(jù)庫。哪怕不是數(shù)據(jù)庫,而是其他各類緩存、內(nèi)存存儲等處理方案。
- 1系統(tǒng)的二次開發(fā)、初試ECSHOP制作模板
- 2綜合性網(wǎng)站建設(shè)的一點看法
- 3網(wǎng)絡(luò)營銷的服務(wù)構(gòu)成
- 4php中時間軸開發(fā)
- 5企業(yè)應(yīng)用架構(gòu)模式
- 6網(wǎng)站設(shè)計師必須懂的
- 7新余網(wǎng)站建設(shè)哪里有?
- 8JavaScript的優(yōu)化準(zhǔn)則
- 9網(wǎng)站權(quán)重的表現(xiàn)
- 10怎樣學(xué)習(xí)及實踐網(wǎng)絡(luò)營銷
- 11反饋留言不能轉(zhuǎn)發(fā)到指定郵箱的解決辦法
- 12在ecshop首頁添加最新發(fā)貨訂單
- 13新余網(wǎng)站建設(shè)網(wǎng)站建設(shè)項目解決方案
- 14用百度產(chǎn)品做優(yōu)化的問題
- 15網(wǎng)上商城訂單轉(zhuǎn)化率
- 16PHP網(wǎng)站訪問人數(shù)統(tǒng)計代碼分析
- 17正確使用PHP引號
- 18百度算法的變化看網(wǎng)站排名
- 19JavaScript智能浮動
- 20做網(wǎng)站優(yōu)化必知三點
- 21SNS社交網(wǎng)站建設(shè)方案
- 22TEL域名網(wǎng)站中的優(yōu)勢
- 23網(wǎng)站標(biāo)題文字怎么修改?
- 24高權(quán)重的網(wǎng)站的表現(xiàn)
- 25網(wǎng)站設(shè)計中幾個失敗的設(shè)計
- 26PHP調(diào)用Linux系統(tǒng)的常用函數(shù)
- 27網(wǎng)站內(nèi)部優(yōu)化一點小總結(jié)
- 28企業(yè)網(wǎng)站制作應(yīng)怎樣設(shè)計細節(jié)
- 29企業(yè)集團網(wǎng)站建設(shè)解決方案
- 30新余視頻網(wǎng)站解決方案
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓