Ⅰ 資料庫查詢性能優化方式有哪些

1、1、調整數據結構的設計。這一部分在開發信息系統之前完成,程序員需要考慮是否使用ORACLE資料庫的分區功能,對於經常訪問的資料庫表是否需要建立索引等。

2、2、調整應用程序結構設計。這一部分也是在開發信息系統之前完成,程序員在這一步需要考慮應用程序使用什麼樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的資料庫資源是不同的。

3、3、調整資料庫SQL語句。應用程序的執行最終將歸結為資料庫中的SQL語句執行,因此SQL語句的執行效率最終決定了ORACLE資料庫的性能。ORACLE公司推薦使用ORACLE語句優化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調整優化SQL語句。

4、4、調整伺服器內存分配。內存分配是在信息系統運行過程中優化配置的,資料庫管理員可以根據資料庫運行狀況調整資料庫系統全局區(SGA區)的數據緩沖區、日誌緩沖區和共享池的大小;還可以調整程序全局區(PGA區)的大小。需要注意的是,SGA區不是越大越好,SGA區過大會佔用操作系統使用的內存而引起虛擬內存的頁面交換,這樣反而會降低系統。

5、5、調整硬碟I/O,這一步是在信息系統開發之前完成的。資料庫管理員可以將組成同一個表空間的數據文件放在不同的硬碟上,做到硬碟之間I/O負載均衡。

6、6、調整操作系統參數,例如:運行在UNIX操作系統上的ORACLE資料庫,可以調整UNIX數據緩沖池的大小,每個進程所能使用的內存大小等參數。

實際上,上述資料庫優化措施之間是相互聯系的。ORACLE資料庫性能惡化表現基本上都是用戶響應時間比較長,需要用戶長時間的等待。但性能惡化的原因卻是多種多樣的,有時是多個因素共同造成了性能惡化的結果,這就需要資料庫管理員有比較全面的計算機知識,能夠敏感地察覺到影響資料庫性能的主要原因所在。另外,良好的資料庫管理工具對於優化資料庫性能也是很重要的。

ORACLE資料庫性能優化工具

常用的資料庫性能優化工具有:

1、1、ORACLE資料庫在線數據字典,ORACLE在線數據字典能夠反映出ORACLE動態運行情況,對於調整資料庫性能是很有幫助的。

2、2、操作系統工具,例如UNIX操作系統的vmstat,iostat等命令可以查看到系統系統級內存和硬碟I/O的使用情況,這些工具對於管理員弄清出系統瓶頸出現在什麼地方有時候很有用。

3、3、SQL語言跟蹤工具(SQL TRACE FACILITY),SQL語言跟蹤工具可以記錄SQL語句的執行情況,管理員可以使用虛擬表來調整實例,使用SQL語句跟蹤文件調整應用程序性能。SQL語言跟蹤工具將結果輸出成一個操作系統的文件,管理員可以使用TKPROF工具查看這些文件。

4、4、ORACLE Enterprise Manager(OEM),這是一個圖形的用戶管理界面,用戶可以使用它方便地進行資料庫管理而不必記住復雜的ORACLE資料庫管理的命令。

5、5、EXPLAIN PLAN——SQL語言優化命令,使用這個命令可以幫助程序員寫出高效的SQL語言。

ORACLE資料庫的系統性能評估

信息系統的類型不同,需要關注的資料庫參數也是不同的。資料庫管理員需要根據自己的信息系統的類型著重考慮不同的資料庫參數。

1、1、在線事務處理信息系統(OLTP),這種類型的信息系統一般需要有大量的Insert、Update操作,典型的系統包括民航機票發售系統、銀行儲蓄系統等。OLTP系統需要保證資料庫的並發性、可靠性和最終用戶的速度,這類系統使用的ORACLE資料庫需要主要考慮下述參數:

l l 資料庫回滾段是否足夠?

l l 是否需要建立ORACLE資料庫索引、聚集、散列?

l l 系統全局區(SGA)大小是否足夠?

l l SQL語句是否高效?

2、2、數據倉庫系統(Data Warehousing),這種信息系統的主要任務是從ORACLE的海量數據中進行查詢,得到數據之間的某些規律。資料庫管理員需要為這種類型的ORACLE資料庫著重考慮下述參數:

l l 是否採用B*-索引或者bitmap索引?

l l 是否採用並行SQL查詢以提高查詢效率?

l l 是否採用PL/SQL函數編寫存儲過程?

l l 有必要的話,需要建立並行資料庫提高資料庫的查詢效率

SQL語句的調整原則

SQL語言是一種靈活的語言,相同的功能可以使用不同的語句來實現,但是語句的執行效率是很不相同的。程序員可以使用EXPLAIN PLAN語句來比較各種實現方案,並選出最優的實現方案。總得來講,程序員寫SQL語句需要滿足考慮如下規則:

1、1、盡量使用索引。試比較下面兩條SQL語句:

語句A:SELECT dname, deptno FROM dept WHERE deptno NOT IN

(SELECT deptno FROM emp);

語句B:SELECT dname, deptno FROM dept WHERE NOT EXISTS

(SELECT deptno FROM emp WHERE dept.deptno = emp.deptno);

這兩條查詢語句實現的結果是相同的,但是執行語句A的時候,ORACLE會對整個emp表進行掃描,沒有使用建立在emp表上的deptno索引,執行語句B的時候,由於在子查詢中使用了聯合查詢,ORACLE只是對emp表進行的部分數據掃描,並利用了deptno列的索引,所以語句B的效率要比語句A的效率高一些。

2、2、選擇聯合查詢的聯合次序。考慮下面的例子:

SELECT stuff FROM taba a, tabb b, tabc c

WHERE a.acol between :alow and :ahigh

AND b.bcol between :blow and :bhigh

AND c.ccol between :clow and :chigh

AND a.key1 = b.key1

AMD a.key2 = c.key2;

這個SQL例子中,程序員首先需要選擇要查詢的主表,因為主表要進行整個表數據的掃描,所以主表應該數據量最小,所以例子中表A的acol列的范圍應該比表B和表C相應列的范圍小。

3、3、在子查詢中慎重使用IN或者NOT IN語句,使用where (NOT) exists的效果要好的多。

4、4、慎重使用視圖的聯合查詢,尤其是比較復雜的視圖之間的聯合查詢。一般對視圖的查詢最好都分解為對數據表的直接查詢效果要好一些。

5、5、可以在參數文件中設置SHARED_POOL_RESERVED_SIZE參數,這個參數在SGA共享池中保留一個連續的內存空間,連續的內存空間有益於存放大的SQL程序包。

6、6、ORACLE公司提供的DBMS_SHARED_POOL程序可以幫助程序員將某些經常使用的存儲過程「釘」在SQL區中而不被換出內存,程序員對於經常使用並且佔用內存很多的存儲過程「釘」到內存中有利於提高最終用戶的響應時間。

CPU參數的調整

CPU是伺服器的一項重要資源,伺服器良好的工作狀態是在工作高峰時CPU的使用率在90%以上。如果空閑時間CPU使用率就在90%以上,說明伺服器缺乏CPU資源,如果工作高峰時CPU使用率仍然很低,說明伺服器CPU資源還比較富餘。

使用操作相同命令可以看到CPU的使用情況,一般UNIX操作系統的伺服器,可以使用sar –u命令查看CPU的使用率,NT操作系統的伺服器,可以使用NT的性能管理器來查看CPU的使用率。

資料庫管理員可以通過查看v$sysstat數據字典中「CPU used by this session」統計項得知ORACLE資料庫使用的CPU時間,查看「OS User level CPU time」統計項得知操作系統用戶態下的CPU時間,查看「OS System call CPU time」統計項得知操作系統系統態下的CPU時間,操作系統總的CPU時間就是用戶態和系統態時間之和,如果ORACLE資料庫使用的CPU時間占操作系統總的CPU時間90%以上,說明伺服器CPU基本上被ORACLE資料庫使用著,這是合理,反之,說明伺服器CPU被其它程序佔用過多,ORACLE資料庫無法得到更多的CPU時間。

資料庫管理員還可以通過查看v$sesstat數據字典來獲得當前連接ORACLE資料庫各個會話佔用的CPU時間,從而得知什麼會話耗用伺服器CPU比較多。

出現CPU資源不足的情況是很多的:SQL語句的重解析、低效率的SQL語句、鎖沖突都會引起CPU資源不足。

1、資料庫管理員可以執行下述語句來查看SQL語句的解析情況:

SELECT * FROM V$SYSSTAT

WHERE NAME IN

('parse time cpu', 'parse time elapsed', 'parse count (hard)');

這里parse time cpu是系統服務時間,parse time elapsed是響應時間,用戶等待時間

waite time = parse time elapsed – parse time cpu

由此可以得到用戶SQL語句平均解析等待時間=waite time / parse count。這個平均等待時間應該接近於0,如果平均解析等待時間過長,資料庫管理員可以通過下述語句

SELECT SQL_TEXT, PARSE_CALLS, EXECUTIONS FROM V$SQLAREA

ORDER BY PARSE_CALLS;

來發現是什麼SQL語句解析效率比較低。程序員可以優化這些語句,或者增加ORACLE參數SESSION_CACHED_CURSORS的值。

2、資料庫管理員還可以通過下述語句:

SELECT BUFFER_GETS, EXECUTIONS, SQL_TEXT FROM V$SQLAREA;

查看低效率的SQL語句,優化這些語句也有助於提高CPU的利用率。

3、3、資料庫管理員可以通過v$system_event數據字典中的「latch free」統計項查看ORACLE資料庫的沖突情況,如果沒有沖突的話,latch free查詢出來沒有結果。如果沖突太大的話,資料庫管理員可以降低spin_count參數值,來消除高的CPU使用率。

內存參數的調整

內存參數的調整主要是指ORACLE資料庫的系統全局區(SGA)的調整。SGA主要由三部分構成:共享池、數據緩沖區、日誌緩沖區。

1、 1、 共享池由兩部分構成:共享SQL區和數據字典緩沖區,共享SQL區是存放用戶SQL命令的區域,數據字典緩沖區存放資料庫運行的動態信息。資料庫管理員通過執行下述語句:

select (sum(pins - reloads)) / sum(pins) "Lib Cache" from v$librarycache;

來查看共享SQL區的使用率。這個使用率應該在90%以上,否則需要增加共享池的大小。資料庫管理員還可以執行下述語句:

select (sum(gets - getmisses - usage - fixed)) / sum(gets) "Row Cache" from v$rowcache;

查看數據字典緩沖區的使用率,這個使用率也應該在90%以上,否則需要增加共享池的大小。

2、 2、 數據緩沖區。資料庫管理員可以通過下述語句:

SELECT name, value FROM v$sysstat WHERE name IN ('db block gets', 'consistent gets','physical reads');

來查看資料庫數據緩沖區的使用情況。查詢出來的結果可以計算出來數據緩沖區的使用命中率=1 - ( physical reads / (db block gets + consistent gets) )。

這個命中率應該在90%以上,否則需要增加數據緩沖區的大小。

3、 3、 日誌緩沖區。資料庫管理員可以通過執行下述語句:

select name,value from v$sysstat where name in ('redo entries','redo log space requests');查看日誌緩沖區的使用情況。查詢出的結果可以計算出日誌緩沖區的申請失敗率:

申請失敗率=requests/entries,申請失敗率應該接近於0,否則說明日誌緩沖區開設太小,需要增加ORACLE資料庫的日誌緩沖區。

Ⅱ 資料庫性能優化有哪些措施

1、調整數據結構的設計。這一部分在開發信息系統之前完成,程序員需要考慮是否使用ORACLE資料庫的分區功能,對於經常訪問的資料庫表是否需要建立索引等。

2、調整應用程序結構設計。這一部分也是在開發信息系統之前完成,程序員在這一步需要考慮應用程序使用什麼樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的資料庫資源是不同的。

3、調整資料庫SQL語句。應用程序的執行最終將歸結為資料庫中的SQL語句執行,因此SQL語句的執行效率最終決定了ORACLE資料庫的性能。ORACLE公司推薦使用ORACLE語句優化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調整優化SQL語句。

4、調整伺服器內存分配。內存分配是在信息系統運行過程中優化配置的,資料庫管理員可以根據資料庫運行狀況調整資料庫系統全局區(SGA區)的數據緩沖區、日誌緩沖區和共享池的大小;還可以調整程序全局區(PGA區)的大小。需要注意的是,SGA區不是越大越好,SGA區過大會佔用操作系統使用的內存而引起虛擬內存的頁面交換,這樣反而會降低系統。

5、調整硬碟I/O,這一步是在信息系統開發之前完成的。資料庫管理員可以將組成同一個表空間的數據文件放在不同的硬碟上,做到硬碟之間I/O負載均衡。

6、調整操作系統參數,例如:運行在UNIX操作系統上的ORACLE資料庫,可以調整UNIX數據緩沖池的大小,每個進程所能使用的內存大小等參數。

資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。資料庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型資料庫系統都在各個方面得到了廣泛的應用。

在信息化社會,充分有效地管理和利用各類信息資源,是進行科學研究和決策管理的前提條件。資料庫技術是管理信息系統、辦公自動化系統、決策支持系統等各類信息系統的核心部分,是進行科學研究和決策管理的重要技術手段。

在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的「倉庫」,並根據管理的需要進行相應的處理。

例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。

(2)資料庫優化工具擴展閱讀

資料庫,簡單來說是本身可視為電子化的文件櫃--存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。

資料庫指的是以一定方式儲存在一起、能為多個用戶共享、具有盡可能小的冗餘度的特點、是與應用程序彼此獨立的數據集合。

在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的"倉庫",並根據管理的需要進行相應的處理。

例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。

Ⅲ 資料庫如何優化

body{
line-height:200%;
}
如何優化MySQL資料庫
當MySQL資料庫邂逅優化,它有好幾個意思,今天我們所指的是性能優化。
我們究竟該如何對資料庫進行優化呢?下面我就從MySQL對硬體的選擇、Mysql的安裝、my.cnf的優化、MySQL如何進行架構設計及數據切分等方面來說明這個問題。
1.伺服器物理硬體的優化
1)磁碟(I/O),MySQL每一秒鍾都在進行大量、復雜的查詢操作,對磁碟的讀寫量可想而知,所以推薦使用RAID1+0磁碟陣列,如果資金允許,可以選擇固態硬碟做RAID1+0;
2)cpu對Mysql的影響也是不容忽視的,建議選擇運算能力強悍的CPU。
2.MySQL應該採用編譯安裝的方式
MySQL資料庫的線上環境安裝,我建議採取編譯安裝,這樣性能會較大的提升。
3.MySQL配置文件的優化
1)skip
-name
-resolve,禁止MySQL對外部連接進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間;
2)back_log
=
384,back_log指出在MySQL暫時停止響應新請求之前,短時間內的多少個請求可以被存在堆棧中,對於Linux系統而言,推薦設置小於512的整數。
3)如果key_reads太大,則應該把my.cnf中key_buffer_size變大,保持key_reads/key_read_requests至少在1/100以上,越小越好。
4.MySQL上線後根據status狀態進行適當優化
1)打開慢查詢日誌可能會對系統性能有一點點影響,如果你的MySQL是主-從結構,可以考慮打開其中一台從伺服器的慢查詢日誌,這樣既可以監控慢查詢,對系統性能影響也會很小。
2)MySQL伺服器過去的最大連接數是245,沒有達到伺服器連接數的上限256,應該不會出現1040錯誤。比較理想的設置是:Max_used_connections/max_connections
*
100%
=85%
5.MySQL資料庫的可擴展架構方案
1)MySQL
cluster,其特點為可用性非常高,性能非常好,但它的維護非常復雜,存在部分Bug;
2)DRBD磁碟網路鏡像方案,其特點為軟體功能強大,數據可在底層塊設備級別跨物理主機鏡像,且可根據性能和可靠性要求配置不同級別的同步。

Ⅳ 有沒有自動優化sql的工具

自動優化有點難。
不過正常情況下,慢SQL你選擇後右鍵
選擇「顯示估計的執行時間」
然後如果你SQL有索引建議,你再點右鍵現在缺少索引信息,可以方便建索引。
但注意的是,索引別太多,否則證明你系統的業務邏輯有問題。。。。。

Ⅳ sqlserver的分析優化工具有哪些

sql server profiler功能
此工具比柯南還柯南,因為他能檢測到資料庫中的一舉一動,即便你不動他,他也在監視回你,他很賤答的。他不但監視,還監視的很詳細,有多詳細一會再說,還把監視的內容記錄到資料庫或者是文件中,給你媳婦告狀說你把資料庫哪裡的性能搞的多麼不好,不過他也會把好的給你記錄下來,好與不好這當然需要你來分析,其實他也是個很2的柯南。
資料庫引擎優化顧問功能
此武功,乃上乘武功。像張無忌的乾坤大挪移,先是接受sql server profiler檢測出來的sql,視圖,存儲過程,數據結構等等,然後他再自己分析,然後再在懷中轉兩圈,感覺自己轉的差不多啦,就給拋出來個威力更炫,更好的索引,統計,分區等等建議信息。讓你承受不住,happly致死。

Ⅵ oracle sql優化工具

toad 裡面有個quest sql optimizer 應該還可以,本人用的不多,不過就TOAD軟體來說還是不內錯的

32 64位的都 有,網上找找容,多的是

http://blog.itpub.net/17252115/viewspace-756460/

Ⅶ 有什麼資料庫優化軟體

toad是個很不錯的資料庫客戶端工具,可以參考使用,推薦英文較好的人使用

Ⅷ 可以優化sql,提高sql查詢效率的工具。

自己優化啊, 工具怎麼知道你的實際情況,硬體配置情況等等

Ⅸ 請問sql資料庫優化具體是指的哪些方面呢有沒有什麼工具軟體呢

1、資料庫邏輯設計的規范化 資料庫邏輯設計的規范化就是我們一般所說的範式,我們可以這樣來簡單理解範式:第1規范:沒有重復的組或多值的列,這是資料庫設計的最低要求。第2規范: 每個非關鍵欄位必須依賴於主關鍵字,不能依賴於一個組合式主關鍵字的某些組成部分。消除部分依賴,大部分情況下,資料庫設計都應該達到第二範式。第3規范: 一個非關鍵欄位不能依賴於另一個非關鍵欄位。消除傳遞依賴,達到第三範式應該是系統中大部分表的要求,除非一些特殊作用的表。更高的範式要求這里就不再作介紹了,個人認為,如果全部達到第二範式,大部分達到第三範式,系統會產生較少的列和較多的表,因而減少了數據冗餘,也利於性能的提高。2、合理的冗餘完全按照規范化設計的系統幾乎是不可能的,除非系統特別的小,在規范化設計後,有計劃地加入冗餘是必要的。冗餘可以是冗餘資料庫、冗餘表或者冗餘欄位,不同粒度的冗餘可以起到不同的作用。冗餘可以是為了編程方便而增加,也可以是為了性能的提高而增加。從性能角度來說,冗餘資料庫可以分散資料庫壓力,冗餘表可以分散數據量大的表的並發壓力,也可以加快特殊查詢的速度,冗餘欄位可以有效減少資料庫表的連接,提高效率。3、主鍵的設計主鍵是必要的,SQL SERVER的主鍵同時是一個唯一索引,而且在實際應用中,我們往往選擇最小的鍵組合作為主鍵,所以主鍵往往適合作為表的聚集索引。聚集索引對查詢的影響是比較大的,這個在下面索引的敘述。在有多個鍵的表,主鍵的選擇也比較重要,一般選擇總的長度小的鍵,小的鍵的比較速度快,同時小的鍵可以使主鍵的B樹結構的層次更少。主鍵的選擇還要注意組合主鍵的欄位次序,對於組合主鍵來說,不同的欄位次序的主鍵的性能差別可能會很大,一般應該選擇重復率低、單獨或者組合查詢可能性大的欄位放在前面。4、外鍵的設計外鍵作為資料庫對象,很多人認為麻煩而不用,實際上,外鍵在大部分情況下是很有用的,理由是:外鍵是最高效的一致性維護方法,資料庫的一致性要求,依次可以用外鍵、CHECK約束、規則約束、觸發器、客戶端程序,一般認為,離數據越近的方法效率越高。謹慎使用級聯刪除和級聯更新,級聯刪除和級聯更新作為SQL SERVER 2000當年的新功能,在2005作 了保留,應該有其可用之處。我這里說的謹慎,是因為級聯刪除和級聯更新有些突破了傳統的關於外鍵的定義,功能有點太過強大,使用前必須確定自己已經把握好 其功能范圍,否則,級聯刪除和級聯更新可能讓你的數據莫名其妙的被修改或者丟失。從性能看級聯刪除和級聯更新是比其他方法更高效的方法。5、欄位的設計欄位是資料庫最基本的單位,其設計對性能的影響是很大的。需要注意如下:A、數據類型盡量用數字型,數字型的比較比字元型的快很多。B、數據類型盡量小,這里的盡量小是指在滿足可以預見的未來需求的前提下的。C、 盡量不要允許NULL,除非必要,可以用NOT NULL+DEFAULT代替。D、少用TEXT和IMAGE,二進制欄位的讀寫是比較慢的,而且,讀取的方法也不多,大部分情況下最好不用。E、自增欄位要慎用,不利於數據遷移。6、資料庫物理存儲和環境的設計在設計階段,可以對資料庫的物理存儲、操作系統環境、網路環境進行必要的設計,使得我們的系統在將來能適應比較多的用戶並發和比較大的數據量。這里需要注意文件組的作用,適用文件組可以有效把I/O操作分散到不同的物理硬碟,提高並發能力。7、系統設計整個系統的設計特別是系統結構設計對性能是有很大影響的,對於一般的OLTP系統,可以選擇C/S結構、三層的C/S結構等,不同的系統結構其性能的關鍵也有所不同。系統設計階段應該歸納一些業務邏輯放在資料庫編程實現,資料庫編程包括資料庫存儲過程、觸發器和函數。用資料庫編程實現業務邏輯的好處是減少網路流量並可更充分利用資料庫的預編譯和緩存功能。8、索引的設計在設計階段,可以根據功能和性能的需求進行初步的索引設計,這里需要根據預計的數據量和查詢來設計索引,可能與將來實際使用的時候會有所區別。關於索引的選擇,應改主意:A、根據數據量決定哪些表需要增加索引,數據量小的可以只有主鍵。B、根據使用頻率決定哪些欄位需要建立索引,選擇經常作為連接條件、篩選條件、聚合查詢、排序的欄位作為索引的候選欄位。C、把經常一起出現的欄位組合在一起,組成組合索引,組合索引的欄位順序與主鍵一樣,也需要把最常用的欄位放在前面,把重復率低的欄位放在前面。D、一個表不要加太多索引,因為索引影響插入和更新的速度。 具體有什麼工具,我就不知道了

Ⅹ 如何用一款小工具大大加速MySQL SQL語句優化

其實MySQL自帶查詢優化器啊。

explainSELECTid,namefromtablenamewhereid=10;
root@localhost[test]>explainselectid,kfromsbtest1whereid=1000G
***************************1.row***************************
id:1
select_type:SIMPLE
table:sbtest1
partitions:NULL
type:const
possible_keys:PRIMARY
key:PRIMARY
key_len:4
ref:const
rows:1
filtered:100.00
Extra:NULL
1rowinset,1warning(0.02sec)
這個就告訴你,這一條語句是如何執行的。possible_keys,只可能會走的索引key:是實際走的索引,這里走的是主鍵索引哈。
sql優化還有很多知識,一般都用這個來查看執行計劃。具體細節你需要再去翻看資料。
##基礎內容可以看看這里。使用MariaDB資料庫管理系統。www.linuxprobe.com/chapter-18.html#
#MariaDB和MySQL使用上大致一樣的。