(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不支援多種字...