mysql設計用途 mysql使用規範 SQL設計

2021-10-20 23:30:30 字數 1096 閱讀 7543

(1)使用prepared statement,可以提公升效能並避免sql注入。

(2)使用in代替or。sql語句中in包含的值不應過多,應少於1000個。

(3)禁止隱式轉換。數值型別禁止加引號;字串型別必須加引號。

(4)避免使用join和子查詢。必要時推薦用join代替子查詢。

(5)禁止在mysql中進行數**算和函式運算。

(6)減少與資料庫互動次數,盡量採用批量sql語句。

(7)拆分複雜sql為多個小sql,避免大事務。

(8)獲取大量資料時,建議分批次獲取資料,每次獲取資料少於2000條,結果集應小於1m。

(9)使用union all代替union。

(10)統計行數使用count(*)。

(11)select只獲取必要的字段,禁止使用select *。

(12)sql中避免出現now()、rand()、sysdate()、current_user()等不確定結果的函式。

13)insert語句必須指定字段列表,禁止使用 insert into table()。

(14)禁止單條sql語句同時更新多個表。

(15)禁止使用儲存過程、觸發器、檢視、自定義函式等。

(16)建議使用合理的分頁方式以提高分頁效率。

(17)禁止在從庫上執行後台管理和統計類功能的query,必要時申請統計類從庫。

(18)程式應有捕獲sql異常的處理機制,必要時通過rollback顯式回滾。

(19)重要sql必須被索引:update、delete的where條件列、order by、group by、distinct欄位、多表join欄位。

(20)禁止使用%前導查詢,例如:like 「%abc」,無法利用到索引。

(21)禁止使用負向查詢,例如 not in、!=、not like。

(22)使用explain判斷sql語句是否合理使用索引,盡量避免extra列出現:using file sort、using temporary。

(23)禁止使用order by rand()。

(24)禁止使用replace into和insert on duplicate key update的語句型別,除非業務場景特殊且dba評估通過。

mysql事務的用途 MySQL事務功能

mysql事務功能 1.事務簡述 乙個事務是乙個連續的一組資料庫操作,就好像它是乙個單一的工作單元進行。換言之,永遠不會是完整的事務,除非該組內的每個單獨的操作是成功的。如果在事務的任何操作失敗,則整個事務將失敗。2.事務特性 原子性 在事務的操縱中,要麼都執行 要麼都不執行 一致性 事務中,保證資...

mysql 多個and無效 MySQL正確使用索引

show index from 表名 查詢索引名 alter table 表名 drop index 索引名 刪除普通索引 alter table 表名 change id id int 去除主鍵自動增長功能,才能刪除主鍵,相當於重新定義id alter table 表名 drop primary ...

mysql雜湊索引用途 MySQL 雜湊索引

雜湊索引基於雜湊表實現,只有精確匹配索引所有列的查詢才有效。在mysql中只有memory引擎顯示支援雜湊索引,也是memory引擎表的預設索引型別。memory引擎是支援非唯一雜湊索引的。如果多個列的雜湊值相同,索引會以鍊錶 的方式存放多個記錄指標道同乙個雜湊條目中。舉個粒子 create tab...