防止sql注入的方法有哪些 Sql執(zhí)行慢的原因可能有哪些?
Sql執(zhí)行慢的原因可能有哪些?SQL執(zhí)行緩慢,大致可分為兩種情況1。盡量建立索引,包括條件列、連接列、外鍵列等。盡量使列的順序與復(fù)合索引的順序一致。3. 不要選擇*,只列出所需的字段。4. 盡可能減少
Sql執(zhí)行慢的原因可能有哪些?
SQL執(zhí)行緩慢,大致可分為兩種情況
1。盡量建立索引,包括條件列、連接列、外鍵列等。盡量使列的順序與復(fù)合索引的順序一致。
3. 不要選擇*,只列出所需的字段。
4. 盡可能減少子查詢(xún)的層數(shù)。
5. 盡可能多地過(guò)濾子查詢(xún)中的數(shù)據(jù)。有兩種方法可以定位低效的SQL語(yǔ)句。1通過(guò)slow query log查找效率較低的SQL語(yǔ)句,并使用--log slow querys[=file當(dāng)啟動(dòng)[name]選項(xiàng)時(shí),mysqld會(huì)寫(xiě)入第二個(gè)SQL語(yǔ)句日志文件。有關(guān)詳細(xì)信息,請(qǐng)參閱本書(shū)第26章日志管理的相關(guān)部分。慢查詢(xún)?nèi)罩局挥涗浽诓樵?xún)結(jié)束后,因此當(dāng)應(yīng)用程序反映執(zhí)行效率有問(wèn)題時(shí),查詢(xún)慢查詢(xún)?nèi)罩緹o(wú)法定位問(wèn)題??梢允褂胹how processlist命令查看mysql中的當(dāng)前線程,包括線程狀態(tài)和表是否被鎖定,可以實(shí)時(shí)查看SQL,同時(shí)對(duì)一些鎖表操作進(jìn)行了優(yōu)化。