国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

知了堂Java | Java基礎(chǔ)面試題(11)

2021-11-22 10:06 作者:匯智知了堂  | 我要投稿

3.什么是sql注入?如何防止sql注入?

sql注入:

通過在 Web 表單中輸入(惡意)SQL 語句得到一個存在安全漏洞的網(wǎng)站上的數(shù)據(jù)庫,而不是 按照設(shè)計者意圖去執(zhí)行 SQL 語句。例如:當(dāng)執(zhí)行的 sql 為 select * from user where username = "admin" or "a"="a"時,sql 語句恒成立,參數(shù) admin 毫無意義?

防止 sql 注入的方式:

1. 預(yù)編譯語句:如,select * from user where username = ?,sql 語句語義不會發(fā)生改變,sql 語 句中變量用?表示,即使傳遞參數(shù)時為"admin or 'a'= 'a'",也會把這整體當(dāng)做一個字符創(chuàng)去查詢。

2. Mybatis 框架中的 mapper 方式中的 # 也能很大程度的防止 sql 注入($無法防止 sql 注入)。

4.有哪些sql優(yōu)化方法??

當(dāng)只要一行數(shù)據(jù)時使用 limit 1?

查詢時如果已知會得到一條數(shù)據(jù),這種情況下加上 limit 1 會增加性能。因為 mysql 數(shù)據(jù)庫引 擎會在找到一條結(jié)果停止搜索,而不是繼續(xù)查詢下一條是否符合標(biāo)準(zhǔn)直到所有記錄查詢完 畢。?

選擇正確的數(shù)據(jù)庫引擎 ,Mysql 中有兩個引擎 MyISAM 和 InnoDB,每個引擎有利有弊

MyISAM 適用于一些大量查詢的應(yīng)用,但對于有大量寫功能的應(yīng)用不是很好。甚至你只需要 update 一個字段整個表都會被鎖起來。而別的進程就算是讀操作也不行要等到當(dāng)前 update 操作完成之后才能繼續(xù)進行。另外,MyISAM 對于 select count(*)這類操作是超級快的。

InnoDB 的趨勢會是一個非常復(fù)雜的存儲引擎,對于一些小的應(yīng)用會比 MyISAM 還慢,但是 支持“行鎖”,所以在寫操作比較多的時候會比較優(yōu)秀。并且,它支持很多的高級應(yīng)用,例 如:事務(wù)。

用 not exists 代替 not in?

Not exists 用到了連接能夠發(fā)揮已經(jīng)建立好的索引的作用,not in 不能使用索引。Not in 是 最慢的方式要同每條記錄比較,在數(shù)據(jù)量比較大的操作時不建議使用這種方式?

對操作符的優(yōu)化,盡量不采用不利于索引的操作符?

如:in not in is null is not null <>等

某個字段總要拿來搜索,

為其建立索引:Mysql 中使用 alter table 語句來為表中的字段添加 索引:alter table 表明 add index (字段名)

知了堂Java | Java基礎(chǔ)面試題(11)的評論 (共 條)

分享到微博請遵守國家法律
三台县| 普安县| 平顺县| 五家渠市| 平顶山市| 抚顺县| 咸丰县| 喀喇| 娱乐| 枞阳县| 河南省| 柳河县| 海伦市| 定边县| 姜堰市| 莆田市| 调兵山市| 综艺| 营山县| 潜江市| 河源市| 九江县| 外汇| 大庆市| 新巴尔虎左旗| 和林格尔县| 阿拉善右旗| 积石山| 恩平市| 霍州市| 雷州市| 阳山县| 航空| 西青区| 抚顺市| 文成县| 云阳县| 灵寿县| 莒南县| 雷山县| 安国市|