亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL數據庫優(yōu)化的六種方式總結

 更新時間:2022年01月25日 09:30:53   作者:白大鍋  
關于數據庫優(yōu)化,網上有不少資料和方法,但是不少質量參差不齊,所以下面這篇文章主要給大家介紹了關于MySQL數據庫優(yōu)化的六種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

方法一

使用連接來代替子查詢(Sub-Queries)??梢允褂肧ELECT語句來創(chuàng)建一個單列的查詢結果,然后把這個結果作為過濾條件用在另一個查詢中。

DELETE  FROM  customerinfo
WHERE  CustomerID  NOT  in  (SELECT customerid  FROM  salesinfo)

方法二

事務。不是所有的數據庫操作都可以只用一條或少數幾條SQL語句就可以完成的。更多的時候是需要用到一系列的語句來完成某種工作??梢员3謹祿熘袛祿耐暾院鸵恢滦?/p>

BEGIN;
  INSERT   INTO   salesinfo   SET   customerid=14;
  UPDATE   inventory   SET   quantity =11   WHERE   item='book';
COMMIT;

方法三

鎖定表。由于在事務執(zhí)行的過程中,數據庫將會被鎖定,因此其他的用戶請求只能暫時等待直到該事務結束。有些情況下我們可以通過鎖定表的放大來獲得更好的性能。

LOCK TABLE inventory WRITE SELECT quantity  FROM   inventory   WHERE Item='book';
...
UPDATE   inventory   SET   Quantity=11   WHERE  Item='book';UNLOCKTABLES

方法四

使用外鍵。鎖定表的方法可以保護數據的完整性,但是卻不能保證數據的關聯(lián)性。

CREATE  TABLE   customerinfo( customerid   int primary key) engine = innodb;
CREATE  TABLE   salesinfo( salesid int not null,customerid  int not null, primary key(customerid,salesid),foreign key(customerid)  references  customerinfo(customerid) on delete cascade)engine = innodb;

方法五

使用索引。

索引是提高數據庫性能的常用方法,它可以令數據庫服務器以比沒有索引快得多的速度檢索特定的行,尤其是在查詢語句當中包含有MAX(),MIN()和ORDERBY這些命令的時候,性能提高更為明顯。

那該對哪些字段建立索引呢?

一般說來,索引應建立在那些將用于JOIN,WHERE判斷和ORDERBY排序的字段上。盡量不要對數據庫中某個含有大量重復的值的字段建立索引。對于一個ENUM類型的字段來說,出現大量重復值是很有可能的情況

例如customerinfo中的“province”…字段,在這樣的字段上建立索引將不會有什么幫助;相反,還有可能降低數據庫的性能。我們在創(chuàng)建表的時候可以同時創(chuàng)建合適的索引,也可以使用ALTERTABLE或CREATEINDEX在以后創(chuàng)建索引。此外,MySQL從版本3.23.23開始支持全文索引和搜索。全文索引在MySQL中是一個FULLTEXT類型索引,但僅能用于MyISAM類型的表。對于一個大的數據庫,將數據裝載到一個沒有FULLTEXT索引的表中,然后再使用ALTERTABLE或CREATEINDEX創(chuàng)建索引,將是非??斓?。但如果將數據裝載到一個已經有FULLTEXT索引的表中,執(zhí)行過程將會非常慢。

方法六

選取最適用的字段屬性。MySQL可以支持大數據量的存取,但是數據庫中的表越小,在上面執(zhí)行的查詢就越快。所以可以將表中的字段寬度設置的盡可能小

附:mysql優(yōu)化的常用方法

1.索引的優(yōu)化

  • 只要列中含有NULL值,就最好不要在此例設置索引,復合索引如果有NULL值,此列在使用時也不會使用索引
  • 盡量使用短索引,如果可以,應該制定一個前綴長度
  • 對于經常在where子句使用的列,最好設置索引,這樣會加快查找速度
  • 對于有多個列where或者order by子句的,應該建立復合索引
  • 對于like語句,以%或者‘-’開頭的不會使用索引,以%結尾會使用索引
  • 盡量不要在列上進行運算(函數操作和表達式操作)
  • 盡量不要使用not in和<>操作

2.sql語句的優(yōu)化

  • 查詢時,能不要*就不用*,盡量寫全字段名
  • 大部分情況連接效率遠大于子查詢
  • 多使用explain和profile分析查詢語句
  • 查看慢查詢日志,找出執(zhí)行時間長的sql語句優(yōu)化
  • 多表連接時,盡量小表驅動大表,即小表 join 大表
  • 在千萬級分頁時使用limit
  • 對于經常使用的查詢,可以開啟緩存

3.表的優(yōu)化

  • 表的字段盡可能用NOT NULL
  • 字段長度固定的表查詢會更快
  • 把數據庫的大表按時間或一些標志分成小表
  • 將表分區(qū)

總結

到此這篇關于MySQL數據庫優(yōu)化的六種方式的文章就介紹到這了,更多相關MySQL數據庫優(yōu)化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論