Mysql執行速度優化

2021-07-11 20:30:30 字數 1271 閱讀 6079

(1)create table t select * from t_old where 1= 

0;  

(2)create table t like t_old;  

(3)create table t(

......)

其中(1)最快,但是它取消原來表的有些定義。自增字段、表引擎都變了,如果想要保持一樣的引擎,就在table名稱後邊加上:engine innodb。

(2)結構一摸一樣。這個穩定性存疑,主要是它要查詢原來的表。自測的話,單個執行這個速度比(3)快,批量情況下(3)比(2)快,在壓力狀態下,就不清楚了。

(3)常用方式,建表速度挺慢,建乙個普通的表,大概需要400毫秒左右的時間。

在mysql伺服器上進行查詢,可以啟用高速查詢快取。讓資料庫引擎在後台悄悄的處理是提高效能的最有效方法之一。當同乙個查詢被執行多次時,如果結果是從快取中提取,那是相當快的。但主要的問題是,它是那麼容易被隱藏起來以至於我們大多數程式設計師會忽略它。在有些處理任務中,我們實際上是可以阻止查詢快取工作的。

// query cache does not work

$r = mysql_query("select username from user where signup_date >= curdate()");

// query cache works!

$today = date("y-m-d");

$r = mysql_query("select username from user where signup_date >= '$today'");

// query cache does not work

$r = mysql_query("select username from user where signup_date >= curdate()");

// query cache works!

$today = date("y-m-d");

$r = mysql_query("select username from user where signup_date >= '$today'");

explain查詢的結果,可以告訴你那些索引正在被引用,表是如何被掃瞄和排序的等等。

有時,當你要查詢一張表是,你知道自己只需要看一行。你可能會去的一條十分獨特的記錄,或者只是剛好檢查了任何存在的記錄數,他們都滿足了你的where子句。

在這種情況下,增加乙個limit 1會令你的查詢更加有效。這樣資料庫引擎發現只有1後將停止掃瞄,而不是去掃瞄整個表或索引。

MS SQL執行速度優化

1 大表變小表,小表再連線。但是ms sql 會自動分析執行計畫,並且如檢視,也會被還原為語句,一起被分析。如果表有where條件,先對表使用where來篩選出小表。再進行連線。連線時,小表去join大表。參見 color red 2 或exists 比 in 效率高 另外,首先兩個表的連線欄位都要...

Eclipse執行速度優化

eclipse執行時速度奇慢,具體表現為 1 只要eclipse啟動後,硬碟燈就狂閃,不停的讀盤 2 發布tomcat經常在0 3 偶爾cpu佔滿 1 啟動引數的優化 我的啟動引數為 xms976m xmx976m xx permsize 128m xx maxpermsize 128m xmn16...

優化ajax應用執行速度

ajax將大量的計算從伺服器端轉到了客戶端,加大了原本只負責顯示的瀏覽器的負擔,而ajax主要的實現語言是js,效能比較低,也不屬於輕量級,特別是dom元素。下面是三種對ajax優化應用的方法 1.優化for迴圈 2.將dom節點附加到文件上 3.盡量少點 號操作符的使用。另外,ajax不支援多種字...