本文目錄一覽:
mysql 每次查詢一條數據查10次 和一次查詢10條數據效率有多少差距
臆測一下,十倍。
為什麼說是臆測呢,因為我猜這並不是問很極端的情況。
詳細說來,拆解每個查詢消耗的時間,並不是每個步驟都與行數有關。
查1行,查10行,網路通訊都是佔大部分時間,所以是10倍。
但是,如果你一次查10w行,並不會比10w次1行快10w倍,因為大數據量查詢本來就慢。
延伸一下,以前我們做過一個優化,又來用這個case連續講了4-5年。
這是一個UPDATE table SET col = col + N WHERE key = ?的查詢,大概有5k QPS左右,跑不動。
改成了UPDATE table SET col = col + 1 WHERE key IN (?, ?, ?….. )的樣子,資料庫CPU從40%降到1%。
這個改變沒有改變任何索引使用和網路傳輸,是不常見的,解析SQL瓶頸。
寫這個例子,是要說,優化要根據具體情況分析,數據量和使用情況都會影響結論。
asp + mysql 如何顯示10條記錄集
mysql 有更方便的 limit m,n
select * from table limit 0,10;
就是10條
select * from table limit 10,10;
第11條到第20條
mysql 查詢全表某欄位值最大的10條數據
select * from 表 order by 要最大值的欄位 desc limit 0,10
FILE: 在MySQL伺服器上讀寫文件。
PROCESS: 顯示或殺死屬於其它用戶的服務線程。
RELOAD: 重載訪問控制表,刷新日誌等。
SHUTDOWN: 關閉MySQL服務。
資料庫/數據表/數據列許可權:
ALTER: 修改已存在的數據表(例如增加/刪除列)和索引。
CREATE: 建立新的資料庫或數據表。
DELETE: 刪除表的記錄。
DROP: 刪除數據表或資料庫。
INDEX: 建立或刪除索引。
INSERT: 增加表的記錄。
SELECT: 顯示/搜索表的記錄。
UPDATE: 修改表中已存在的記錄。
特別的許可權:
ALL: 允許做任何事(和root一樣)。
USAGE: 只允許登錄–其它什麼也不允許做。
一、 簡單查詢
簡單的Transact-SQL查詢只包括選擇列表、FROM子句和WHERE子句。它們分別說明所查詢列、查詢的表或視圖、以及搜索條件等。例如,下面的語句查詢testtable表中姓名為「張三」的nickname欄位和email。代碼:SELECT `nickname`,`email`FROM `testtable`WHERE `name`=’張三’
(一) 選擇列表
選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變數(包括局部變數和全局變數)等構成。
1、選擇所有列
例如,下面語句顯示testtable表中所有列的數據:
複製內容到剪貼板
代碼:SELECT * FROM testtable
2、選擇部分列並指定它們的顯示次序
查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同。
例如:
複製內容到剪貼板
代碼:SELECT nickname,email FROM testtable
3、更改列標題
在選擇列表中,可重新指定列標題。定義格式為:
列標題=列名
列名 列標題
如果指定的列標題不是標準的標識符格式時,應使用引號定界符,例如,下列語句使用漢字顯示列
標題:
複製內容到剪貼板
代碼:SELECT 昵稱=nickname,電子郵件=email FROM testtable
4、刪除重複行
SELECT語句中使用ALL或DISTINCT選項來顯示錶中符合條件的所有行或刪除其中重複的數據行,默認
為ALL。使用DISTINCT選項時,對於所有重複的數據行在SELECT返回的結果集合中只保留一行。
5、限制返回的行數
使用TOP n [PERCENT]選項限制返回的數據行數,TOP n說明返回n行,而TOP n PERCENT時,說明n是
表示一百分數,指定返回的行數等於總行數的百分之幾。
例如:
複製內容到剪貼板
代碼:SELECT TOP 2 * FROM `testtable`
複製內容到剪貼板
代碼:SELECT TOP 20 PERCENT * FROM `testtable`
(二) FROM子句
FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應
使用下面語句格式加以限定:
複製內容到剪貼板
代碼:SELECT `username`,citytable.cityid
FROM `usertable`,`citytable`
WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下兩種格式為表或視圖指定別名:
複製內容到剪貼板
代碼:表名 as 別名
表名 別名例如上面語句可用表的別名格式表示為:
複製內容到剪貼板
代碼:SELECT `username`,b.cityid
FROM usertable a,citytable b
WHERE a.cityid=b.cityidSELECT不僅能從表或視圖中檢索數據,它還能夠從其它查詢語句所返回的結果集合中查詢數據。
例如:
複製內容到剪貼板
代碼:SELECT a.au_fname+a.au_lname
FROM authors a,titleauthor ta
(SELECT `title_id`,`title`
FROM `titles`
WHERE ` ytd_sales`10000
) AS t
WHERE a.au_id=ta.au_id
AND ta.title_id=t.title_id此例中,將SELECT返回的結果集合給予一別名t,然後再從中檢索數據。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/219868.html