資料庫優化
1、sql
的型別
1、string sql1="select acl.case_name,aio.description,aio.value from database+".allrun_caselog acl,"+database+".allrun_set_io aio "
+ "where acl.set_name=aio.set_name and acl.runname=aio.runname
and acl.case_name=aio.name and acl.runname=? and acl.set_name=? and acl.state=3 limit
0,1";
2、stringbuffer sql1 =newstringbuffer("select aio.set_name,aio.description,aio.value,ast.case_name from " + database
+ ".allrun_set_io aio inner " + "join " + database
+ ".allrun_set ast on aio.name=ast.case_name and aio.set_name=ast.set_name "
+ "where aio.project_id = " + projectid + " and aio.runname= ");
stringbuilder sb =newstringbuilder();
for
stmt = con.createstatement();
rs1 = stmt.executequery(sql1.tostring());
1、第乙個sql語句採用的是
string
型別的,是不可變的,
第二個sql語句採用的是
stringbuffer
型別的是,是可變的。
在實際專案中的我們寫的sql語句一般都是可變的,不僅為了當前在寫專案的時候,同時也是為了在後期的專案維護中方便增加。
2、stringbuffer的
sql語句多用拼接,
()的方法寫
sql語句
3、在使用兩個sql語句的時候我們會發現,第二個
sql語句的的效率明顯高於第乙個,主要原因是第二句
sql語句使用了
索引。
檢視當前表的索引show index from tablename
4、不能在迴圈中使用sql語句查詢,對於資料量大的資料庫會造成很大的影響,本次採用的是
sql語句中利用
for迴圈,將得到的
tablename
的list
進行遍歷,採用(
tablename=a1 or tablename=a2 or tablename =a3
)的方式。
5、rs.next()為
false
的問題
rs.next()為
fasle
一般表示結果集裡的資料為空
① 確認資料庫連線正確(資料庫已經開啟,連線需要的資料庫)
② 確認sql語句沒有問題,直接放在資料庫中執行,看是否能查到結果
③ if(
rs.next()){
很多人會先對結果集進行判斷,其實在判斷的時候已經跑了一條資料!!
while(
rs.next()
){//
此刻已經到了第二行資料
當再次進行遍歷的時候,next()已經到第二個行資料了,這樣會少遍歷第一行資料
④ 當我們在增、刪、改資料的時候,如果我們沒有commit的話,資料庫中的資料沒有實時同步,那麼會造成資料為空的情況,所以我們一般都會
commit
資料。
con.commit() 或者
con.setautocommit(true);
5、在資料庫裡跑通了,但是在dao層介面上始終不能跑通,當我們在資料庫裡跑的時候,當前
sql會預設在當前的表中進行查詢(一般情況下都是在需要查詢資料的表裡新建查詢,那麼查詢會預設在當前的表中),而在
dao層介面裡面找不到指定的查詢的表的,所以是查詢不到資料的,資料為空,所以結果集返回的結果是
false,
所以sql
語句中必須指定需要查詢的表名
from tablename
6、總結
在使用sql語句進行資料庫查詢的時候,首先需要了解自己要查詢的資料,另外需要去了解相關的表結構,找到需要查詢的資料,改變
dao層介面中的
sql語句時,一般會在資料庫中先進行查詢,注意提高
sql語句的查詢效率,利用索引。
資料庫優化 資料庫設計優化
一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...
資料庫引擎優化顧問優化資料庫
現在一直在做的專案,資料量相對也不小,開始的時候沒有覺得,因為是剛開始,資料量還很小,在程式使用過程中速度還挺快,但是隨著資料量的不停的增長,發現程式越來越慢,甚至出現了超時的問題,因此要對程式和資料庫進行優化,前期專案比較緊,沒有針對大資料量業務進行分析設計,所以索引等相關優化沒有做到位,通過後期...
資料庫優化
資料庫優化 1 合理使用索引 索引是資料庫中重要的資料結構,它的根本目的就是提高查詢效率。索引的使用要恰到好處,其使用原則如下 在經常進行連線,但是沒有指定為外來鍵的列上建立索引,而不經常連線的字段則由優化器自動生成索引 在頻繁進行排序或分組 即進行groupby或orderby操作 的列上建立索引...