POST和GET的區(qū)別
跟POST與GET同級的請求還有PUT和DELETE
GET請求的數(shù)據(jù)會附在URL之后贫母,以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,如果是英文字母悼粮,原樣發(fā)送,如果是空格曾棕,轉(zhuǎn)換為+,如果是中文或者其他字符扣猫,則直接把字符串用BASE64加密
POST是把提交的數(shù)據(jù)放在HTTP包的包體中。
POST的安全性要比GET高
- GET用戶向服務(wù)器獲取數(shù)據(jù)翘地,但是實(shí)際操作中它也可以用來插入和修改申尤、刪除數(shù)據(jù),這是GET的不安全性衙耕,當(dāng)然如果只用來獲取數(shù)據(jù)的話昧穿,是安全的
- GET的不安全性還體現(xiàn)在:比如通過GET提交數(shù)據(jù),用戶名和密碼將明文出現(xiàn)在URL上橙喘,因?yàn)榈顷戫撁婵赡鼙粸g覽器緩存时鸵,或者其他人也可以查看瀏覽器的歷史記錄,那么別人就可以拿到你的賬號密碼了厅瞎,除此之外饰潜,使用GET提交數(shù)據(jù)還可能會造成Cross-site request forgery攻擊。
總結(jié):Get是向服務(wù)器發(fā)索取數(shù)據(jù)的一種請求和簸,而Post是向服務(wù)器提交數(shù)據(jù)的一種請求彭雾,在FORM(表單)中,Method默認(rèn)為"GET"锁保,實(shí)質(zhì)上薯酝,GET和POST只是發(fā)送機(jī)制不同南誊,并不是一個取一個發(fā)!
Mysql優(yōu)化
1蜜托、為什么要進(jìn)行mysql優(yōu)化抄囚?
假設(shè)我們設(shè)置一個數(shù)據(jù)量超過10萬條記錄的表,來進(jìn)行我們經(jīng)常做的查詢操作比如:select * from 表名,服務(wù)器很慢甚至卡死橄务,需要我們重啟數(shù)據(jù)庫服務(wù)器幔托,這說明我們的表或者查詢SQL是有問題的,所以我們要進(jìn)行mysql優(yōu)化
2蜂挪、數(shù)據(jù)庫優(yōu)化的目標(biāo)重挑?
通過各種對數(shù)據(jù)庫的優(yōu)化方法,獲取最高的查詢和加載性能棠涮,達(dá)到查詢性能的提高和加載性能的提高谬哀。
3、掌握優(yōu)化的方式和途徑
建表严肪、索引史煎、配置、SQL語句都需要優(yōu)化
4驳糯、掌握建表和分表優(yōu)化篇梭?
①數(shù)據(jù)庫表設(shè)計(jì)符合范式要求:
第一范式(1NF):是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng)
第二范式(2NF)要求數(shù)據(jù)庫表中的每個實(shí)例或行必須可以被唯一的區(qū)分
第三范式(3NF)要求一個數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關(guān)鍵字信息。
②數(shù)據(jù)庫字段的設(shè)置要合理
介紹常用數(shù)據(jù)類型的特點(diǎn)及如何選擇合適的數(shù)據(jù)類型:
int 4個字節(jié)
char
varchar
text 存儲文件
decimal 存金錢
enum(枚舉)只適合存字符串
float4個字節(jié)
③為什么要分表酝枢?
數(shù)據(jù)庫中的數(shù)據(jù)量不一定是可控的恬偷,在未進(jìn)行分表的情況下,隨著時間和業(yè)務(wù)的發(fā)展帘睦,庫中的表會越來越多袍患,表中的數(shù)據(jù)量也會越來越大,相應(yīng)地竣付,數(shù)據(jù)操作诡延,增刪改查的開銷也會越來越大;另外卑笨,由于無法進(jìn)行分布式式部署孕暇,而一臺服務(wù)器的資源(CPU、磁盤赤兴、內(nèi)存妖滔、IO等)是有限的,最終數(shù)據(jù)庫所能承載的數(shù)據(jù)量桶良、數(shù)據(jù)處理能力都將遭遇瓶頸座舍。
④什么是分表?
原本存儲于一個表的數(shù)據(jù)分塊存儲到多個表上
5陨帆、掌握數(shù)據(jù)庫的查詢優(yōu)化
①關(guān)鍵字一般放在SELECT查詢語句的前面曲秉,用于描述MySQL如何執(zhí)行查詢操作采蚀、以及MySQL成功返回結(jié)果集需要執(zhí)行的行數(shù)。
解釋輸出列的含義(備注):
select title from article where title like '菲律賓%'承二;
②數(shù)據(jù)庫的優(yōu)化查詢主要有以下幾個規(guī)則:
避免全表掃描 eg:select * from 表名;(不可扔苁蟆)
盡量使用索引查詢 eg:select age from user where age>10;
避免使用select *
盡量使用數(shù)字型字段(把包含數(shù)值信息的字段設(shè)計(jì)為字符型,會降低查詢和鏈接的性能亥鸠,引擎在處理查詢和鏈接會逐個比較字符串中的每個字符 妆够,而對于數(shù)字型而言只需要比較一次就夠了)
避免向客戶返回大量數(shù)據(jù)
避免大的事務(wù)性操作,提高系統(tǒng)并發(fā)能力
一個插入500萬行的事務(wù)负蚊,有索引2個
導(dǎo)致別的操作緩慢神妹,如果改成每次 插入5萬行,插100次家妆,這樣別的操作會受影響小嗎鸵荠?
5、掌握MySQL數(shù)據(jù)庫的索引優(yōu)化
6伤极、掌握數(shù)據(jù)庫的配置優(yōu)化
7蛹找、掌握數(shù)據(jù)庫的查詢優(yōu)化