色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql查詢最大值,Mysql怎樣優化處理

傅智翔2年前37瀏覽0評論
mysql查詢最大值,Mysql怎樣優化處理?

1. 避免使用 select * 你需要什么信息,就查詢什么信息,查詢的多了,查詢的速度肯定就會慢

2. 當你只需要查詢出一條數據的時候,要使用 limit 1 比如你要查詢數據中是否有男生,只要查詢一條含有男生的記錄就行了,后面不需要再查了,使用Limit 1 可以在找到一條數據后停止搜索

3. 建立高性能的索引 索引不是隨便加的也不是索引越多越好,更不是所有索引對查詢都有效

4. 建數據庫表時,給字段設置固定合適的大小. 字段不能設置的太大,設置太大就造成浪費,會使查詢速度變慢

5. 要盡量使用not null

6. EXPLAIN 你的 SELECT 查詢 使用EXPLAIN,可以幫助你更了解MySQL是如何處理你的sql語句的, 你可以查看到sql的執行計劃,這樣你就能更好的去了解你的sql語句的不足,然后優化語句.

7. 在Join表的時候,被用來Join的字段,應該是相同的類型的,且字段應該是被建過索引的,這樣,MySQL內部會啟動為你優化Join的SQL語句的機制。

8. 如果你有一個字段,比如“性別”,“國家”,“民族”, “省份”,“狀態”或“部門”,這些字段的取值是有限而且固定的,那么,應該使用 ENUM 而不是 VARCHAR。

因為在MySQL中,ENUM類型被當作數值型數據來處理,而數值型數據被處理起來的速度要比文本類型快得多。這樣,我們又可以提高數據庫的性能。

9. 垂直分割 將常用和有關系的字段放在相同的表中,把一張表的數據分成幾張表 這樣可以降低表的復雜度和字段的數目,從而達到優化的目的

10. 優化where查詢

①. 避免在where子句中對字段進行表達式操作

比如: select 列 from 表 where age*2=36; 建議改成 select 列 from 表 where age=36/2;

②. 應盡量避免在 where 子句中使用 !=或 操作符,否則將引擎放棄使用索引而進行全表掃描。

③. 應盡量避免在 where 子句中對字段進行 null 值 判斷

④. 應盡量避免在 where 子句中使用 or 來連接條件

11. 不建議使用%前綴模糊查詢,這種查詢會導致索引失效而進行全表掃描

例如LIKE “%name”或者LIKE “%name%這兩種都是不建議的.但是可以使用LIKE “name%”。

對于LIKE “%name%,可以使用全文索引的形式

12. 要慎用in和 not in

例如:select id from t where num in(1,2,3) 建議改成 select id from t where num between 1 and 3

對于連續的數值,能用 between 就不要用 in 了

13. 理解in和exists, not in和not exists的區別

很多時候用 exists 代替 in 是一個好的選擇:如查詢語句使用了not in那么內外表都進行全表掃描,沒用到索引,而not exists子查詢依然能用到表上索引,所以無論哪個表大,用not exists都比not in要快。

select num from a where num in(select num from b)

建議改成: select num from a where exists(select 1 from b where num=a.num)

區分in和exists主要是造成了驅動順序的改變(這是性能變化的關鍵),如果是exists,那么以外層表為驅動表,先被訪問,如果是IN,那么先執行子查詢。所以IN適合于外表大而內表小的情況;EXISTS適合于外表小而內表大的情況。

關于not in和not exists,推薦使用not exists,不僅僅是效率問題,not in可能存在邏輯問題

14. 理解select Count (*)和Select Count(1)以及Select Count(column)區別

一般情況下,Select Count (*)和Select Count(1)兩著返回結果是一樣的

假如表沒有主鍵(Primary key), 那么count(1)比count(*)快,

如果有主鍵的話,那主鍵作為count的條件時候count(主鍵)最快

如果你的表只有一個字段的話那count(*)就是最快的

count(*) 跟 count(1) 的結果一樣,都包括對NULL的統計,而count(column) 是不包括NULL的統計

技術交流請關注“大數據java架構師”