日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql1215_这15条MySQL改善经验必须收藏

發布時間:2024/10/14 数据库 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql1215_这15条MySQL改善经验必须收藏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL 作為目前的主流開源數據庫, 既能挑戰 “雙11”,又能扛起 “618”,比起網紅版數據庫,MySQL 絕對是實力擔當。

1、 為查詢緩存優化查詢

像 NOW() 和 RAND() 或是其它的諸如此類的SQL函數都不會開啟查詢緩存,謹慎使用

2、EXPLAIN 我們的SELECT查詢(可以查看執行的行數)

可以讓我們找到潛在的性能問題

3、當只要一行數據時使用LIMIT 1

MySQL數據庫引擎會在查找到一條數據后停止搜索,而不是繼續往后查詢下一條符合條件的數據記錄。

4、為搜索字段建立索引

在識別度高的列上建立正確的索引,以提升性能

5、在Join表的時候使用相當類型的列,并將其索引

關聯表的關鍵字段,類型一致,字符集一致,才能提高性能,否則無法使用它們的索引

6、千萬不要 ORDER BY RAND ()

執行RAND()函數(很耗CPU時間),會讓你的數據庫的性能呈指數級的下降

7、 避免SELECT *

從數據庫里讀出越多的數據,那么查詢就會變得越慢。

8、永遠為每張表設置一個ID

我們應該為數據庫里的每張表都設置一個ID做為其主鍵,而且最好的是一個INT型的(推薦使用UNSIGNED),并設置上自動增加的 AUTO_INCREMENT標志。

9、可以使用ENUM 而不要VARCHAR

ENUM 類型是非常快和緊湊的。在實際上,其保存的是 TINYINT,但其外表上顯示為字符串。

10、盡可能的使用NOT NULL

如果不是特殊情況,盡可能的不要使用NULL。在MYSQL中對于INT類型而言,EMPTY是0,而NULL是空值。而在Oracle中 NULL和EMPTY的字符串是一樣的。NULL也需要占用存儲空間,并且會使我們的程序判斷時更加復雜。現實情況是很復雜的,依然會有些情況下,我們需要使用NULL值。

11、固定長度的表會更快

表中沒有如下類型的字段: VARCHAR,TEXT,BLOB。只要我們包括了其中一個這些字段,那么這個表就不是“固定長度靜態表”了,這樣,MySQL 引擎會用另一種方法來處理。 固定長度的表會提高性能,因為MySQL搜尋得會更快一些,因為這些固定的長度是很容易計算下一個數據的偏移量的,所以讀取的自然也會很快。

12、垂直分割

“垂直分割”是一種把數據庫中的表按列變成幾張表的方法,這樣可以降低表的復雜度和字段的數目,從而達到優化的目的。

13、拆分打的DELETE或INSERT語句

這兩個操作是會鎖表的

14、越小的列會越快

對于大多數的數據庫引擎來說,硬盤操作可能是最重大的瓶頸。越小的列消耗的io資源越少

15、選擇正確的存儲引擎

MyISAM是MYSQL5.5版本以前默認的存儲引擎,基于傳統的ISAM類型,支持B-Tree,全文檢索,但是不是事務安全的,而且不支持外鍵。不具有原子性。支持鎖表。

InnoDB是事務型引擎,支持ACID事務(實現4種事務隔離機制)、回滾、崩潰恢復能力、行鎖。以及提供與Oracle一致的不加鎖的讀取方式。InnoDB存儲它的表和索引在一個表空間中,表空間可以包含多個文件。

總結

以上是生活随笔為你收集整理的mysql1215_这15条MySQL改善经验必须收藏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。