深入mysql基礎知識的詳解
1.每個客戶端連線都會從伺服器程式中分到一個屬於它的執行緒。而該連線的相應查詢都都會透過該執行緒處理。
2.伺服器會快取執行緒。因此並不會為每個新連線建立或者銷燬執行緒。
3.當發起對MySQL伺服器的連線時,伺服器會對 username,host,password進行驗證。而一旦連線上,伺服器就會檢測其許可權。
4.MySQL查詢快取只會儲存 SELECT 語句和相應的結果。在解析查詢之前會詢問查詢快取,如果查詢快取中能找到相應的結果就直接返回結果。
5.MySQL的 data 資料夾下會根據每個資料庫建立一個相應名稱的資料夾。而每一張表對應的有三個不同字尾的檔案:.frm,.MYD,.MYI。其中 .frm 字尾的檔案用來儲存表的定義。.MYD(mysql data)儲存的是資料,而.MYI(mysql index)儲存的是索引。
6.關於IP的儲存型別選擇。別再使用 varchar(15) 了,應該使用 INT UNSIGNED。而且最好是使用PHP的內建函式ip2long()和 long2ip() 來處理,而不是使用 MySQL 的函式 INET_ATON() 和 INET_NTOA()。儘可能地將計算和轉換之類的東西交給程式來完成。儲存為 INT 不僅節省了空間,而且利於查詢。比如我想要查詢出某個IP段的所有IP,varchar 是沒辦法進行的。
7. B+Tree 索引儲存資料的順序和建表時的欄位順序一致。InnoDB會自動在記憶體中為一些被頻繁訪問的索引值建立記憶體索引以加快速度。
8.以下查詢會引起索引失效:
複製程式碼 程式碼如下:
SELECT name FROM user WHERE id+1=4; // mysql不會從計算中去分析出id是有索引的
SELECT name FROM user WHERE TO_DAYS(birth) > 20; // mysql索引的是birth本身,而不是TO_DAYS()轉化之後的資料
1.複製表結構
CREATE TABLE b LIKE a;
2.更改儲存引擎
ALTER TABLE a ENGINE=InnoDB;
3.複製表資料
INSERT INTO b SELECT * FROM a;
4.獲取表資訊
SHOW TABLE STATUS LIKE '%XXX%'; // 獲取表名符合LIKE的表資訊。
SHOW TABLE STATUS FROM `資料庫名`; // 獲取該資料庫下所有表的資訊
5.清空二進位制日誌
RESET MASTER;
6.返回某欄位前X個字元
SELECT LEFT(name, 3) AS pre_name FROM user;
7.為某欄位新增字首索引
ALERT TABLE xxx ADD KEY (name(3));
8.避免讀取不必要的行,使用索引覆蓋查詢
SELECT * FROM JOIN (SELECT prod_id FROM products WHERE actor='SEAN CARREY' AND
title LIKE '%APOLLO%') AS t ON (t.prod_id=products.prod_id); // 其中actor有索引
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4560/viewspace-2810370/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Git基礎知識詳解Git
- Redis基礎知識詳解Redis
- 滲透測試基礎知識---mysql配置檔案詳解MySql
- IPv6基礎知識詳解
- MySQL基礎知識(一)-超詳細MySQL安裝教程MySql
- MySQL基礎知識(5)MySql
- MySQL基礎知識(6)MySql
- MySQL基礎知識(7)MySql
- MySQL基礎知識(8)MySql
- MySql基礎知識(2)MySql
- JS基礎知識深入總結JS
- MySQL指南之基礎知識MySql
- MySQL基礎知識分享(二)MySql
- MySQL基礎知識分享(一)MySql
- iOS 開發:『Runtime』詳解(一)基礎知識iOS
- MySQL基礎知識小結(一)MySql
- [01-jwt]C# JWT基礎知識詳解JWTC#
- 關於mysql基礎知識的介紹MySql
- Analysis Services基礎知識——深入SQL Server 2008SQLServer
- 圖解 IP 基礎知識!圖解
- 惡補基礎知識:Java 棧與佇列詳解Java佇列
- MySQL-13.事務基礎知識MySql
- MySQL?資料庫的基礎知識撩磅MySql資料庫
- MySQL必知必會筆記——查詢的基礎知識MySql筆記
- SQL與NoSQL資料庫入門基礎知識詳解SQL資料庫
- 基礎知識:DFRduino UNO R3最全資料詳解UI
- MySQL 基礎知識梳理學習(四)—-GTIDMySql
- 【學習】MySQL基礎知識要點-001MySql
- 滲透測試基礎知識----MySQL 配置MySql
- 基礎知識
- LUA的基礎知識
- 大資料學習之路——MySQL基礎(一)——MySQL的基礎知識與常見操作大資料MySql
- JDBC-MySql基礎操作詳解JDBCMySql
- MySQL資料庫基礎詳解MySql資料庫
- 統計學入門:時間序列分析基礎知識詳解
- Web前端基礎知識:ES5及ES6this詳解Web前端
- Java基礎知識整理之註解Java
- 網路營銷的基礎知識瞭解