資料庫優化

2021-08-09 10:54:08 字數 2367 閱讀 6324

資料庫優化

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操作 的列上建立索引...