示例
詢問select * from stack;
結果| id | username | password |
| 1 | admin | admin |
| 2 | stack | stack |
2 rows in set (0.00 sec)
您可以通過執行以下操作從乙個連線的乙個表中選擇所有列:
select stack.* from stack join overflow onstack.id= overflow.id;
最佳實踐*除非正在除錯或獲取row(s)關聯陣列,否則不要使用,否則架構更改(add / drop /重新排列列)可能會導致討厭的應用程式錯誤。另外,如果提供結果集中所需的列列表,mysql的查詢計畫程式通常可以優化查詢。
優點:新增/刪除列時,無需在使用位置進行更改 select *
寫起來短些
您還會看到答案,因此-使用select *是否有理由?
缺點:您返回的資料超出了您的需要。假設您新增了乙個varbinary列,每行包含200k。您只需要在乙個地方儲存一次記錄select *就可以使用此資料-這樣您最終可以在不需要的10行中返回2mb
明確使用什麼資料
指定列意味著刪除列時出現錯誤
查詢處理器必須做更多的工作-弄清楚表中存在哪些列(感謝@vinodadhikary)
您可以找到更容易使用列的位置
如果使用select *,則會獲得聯接中的所有列
您不能安全地使用序數引用(儘管對列使用序數引用本身是一種不好的做法)
在帶有text欄位的複雜查詢中,臨時表的處理可能不太理想,從而降低了查詢速度
mysql 選擇列 選擇MySQL表的前N列
請先看看bill karwin的 answer.但是,如果您知道如何訂購列名,那麼可能會有乙個使用動態查詢的解決方案.要從表中選擇所有列名,可以使用如下查詢 select column name from information schema columns where table schema d...
mysql列型別選擇
整型 data,time char,varchar blob 整型,time運算快,節約空間 char,varchar要考慮字符集的轉化和排序校對集,速度慢 blob無法使用記憶體臨時表 大的字段浪費記憶體,影響速度 null不利於索引,要用特殊的位元組來標註 在磁碟中占用記憶體更大 1 enum列...
mysql 選擇索引 mysql選擇索引
1 盡量為用來搜尋 分類或分組的資料列編制索引,不要為作為輸出顯示的資料列編制索引。最適合有索引的資料列是那些在where子句中資料列,在聯結子句 現的資料列,或者是在group by order by子句 現的資料列。select 後的資料列最好不要用索引。2 綜合考慮各資料列的維度。資料列的維度...