常見MySQL錯誤用法有哪些 小白怎麼學Web前端

2021-09-26 05:05:51 字數 2110 閱讀 2598

常見mysql錯誤用法有哪些?小白怎麼學web前端?無論是前端開發還是後台應用,都需要掌握資料庫相關的知識,而mysql是企業常用的資料庫之一。對於乙個web前端小白來說,在完成html+css的基礎學習後,他們還需要學習mysql相關操作,下面列舉幾種比較常見的mysql錯誤用法,希望大家能夠引以為鑑。

1、隱式轉換

sql語句中查詢變數和字段定義型別不匹配是另乙個常見的錯誤。比如下面的語句:

mysql> explain extended select *

from my_balance b

where b.bpn = 14000000123

and b.isverified is null ;

mysql> show warnings;

| warning | 1739 | cannot use ref access on index 『bpn』 due to type or collation conversion on field 『bpn』

其中欄位bpn的定義為varchar(20),mysql的策略是將字串轉換為數字之後再比較。函式作用於表字段,索引失效。

上述情況可能是應用程式框架自動填入的引數,而不是程式設計師的原意。現在應用框架很多很繁雜,使用方便的同時也小心它可能給自己挖坑。

2、混合排序

mysql不能利用索引進行混合排序,但在某些場景,還是有機會使用特殊方法提公升效能的。

select *

from my_order o

order by a.is_reply asc,

limit 0, 20

由於is_reply只有0和1兩種狀態,我們按照上面的方法重寫後,執行時間從1.58秒降低到2毫秒。

select *

from ((select *

from my_order o

on a.orderid = o.id

and is_reply = 0

limit 0, 20)

union all

(select *

from my_order o

on a.orderid = o.id

and is_reply = 1

limit 0, 20)) t

order by is_reply asc,

limit 20;

3、exists語句

mysql對待exists子句時,仍然採用巢狀子查詢的執行方式。如下面的sql語句:

select *

from my_neighbor n

on n.id = sra.neighbor_id

and sra.user_id = 『***』

where n.topic_status < 4

and exists(select 1

from message_info m

where n.id = m.neighbor_id

and m.inuser = 『***』)

and n.topic_type <> 5

去掉exists更改為join,能夠避免巢狀子查詢,將執行時間從1.93秒降低為1毫秒。

select *

from my_neighbor n

inner join message_info m

on n.id = m.neighbor_id

and m.inuser = 『***』

on n.id = sra.neighbor_id

and sra.user_id = 『***』

where n.topic_status < 4

and n.topic_type <> 5

注意:1)資料庫編譯器產生執行計畫,決定著sql的實際執行方式。但是編譯器只是盡力服務,所有資料庫的編譯器都不是盡善盡美的。

2)了解資料庫編譯器的特性,才能避規其短處,寫出高效能的sql語句。

3)程式設計師在設計資料模型以及編寫sql語句時,要把演算法的思想或意識帶進來。

4)編寫複雜sql語句要養成使用with語句的習慣,簡潔且思路清晰的sql語句也能減小資料庫的負擔。

MYSQL錯誤用法,有沒踩過坑這些坑?

表資料,千萬 分頁查詢 但當 limit 子句變成 limit 2000000,10 時,既然要使用20秒。要知道資料庫也並不知道第2000000條記錄從什麼地方開始,即使有索引也需要從頭計算一次。出現這種效能問題,多數情形下是程式設計師偷懶了。索引 如上圖並不能解決,分頁查詢的問題 解決的方案 我...

避免常見的HTML5錯誤用法

不要使用section作為div的替代品 人們在標籤使用中最常見到的錯誤之一就是隨意將html5的等價於 具體地說,就是直接用作替代品 用於樣式 在xhtml或者html4中,我們常看到這樣的 header content page content secondary content footer ...

常見筆順錯誤的字 有哪些常見筆順錯誤?

先說下幾個公認的筆順 一 考 的下部分 丂 的首筆為橫,同 巧 朽 等字的偏旁。考,老也。從老省,丂聲。二 與 的首筆為橫。同其繁體 與 的上中部分。寫 的下部分亦同。三 義 的首筆為點。四 九 的首筆為撇。五 比 的筆順為 橫 豎提 撇 豎彎鉤 當然,傳統寫法右邊的撇也可以是橫。六 方 和 萬 的...