欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql如何適當?shù)奶砑铀饕榻B

 更新時間:2019年03月02日 08:42:17   作者:DreamBoyMrsLin  
今天小編就為大家分享一篇關于Mysql如何適當?shù)奶砑铀饕榻B,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

這里先簡單介紹一下索引:

添加索引是為了提高數(shù)據(jù)庫查詢性能,索引是最物美價廉的東西了,不用加內(nèi)存,不用改程序,不用調(diào)sql,只要執(zhí)行個正確的create index ,查詢的速度就可能提高百倍千倍,可是天下沒有沒費的午餐,查詢的速度的提高是以犧牲insert update delete的速度為代價的。而且索引大小一般是數(shù)據(jù)的三分之一  ,再加上索引要加載進內(nèi)存的,如果全部字段都加索引會以犧牲內(nèi)存為代價的,所以才要設當?shù)奶砑铀饕?/p>

這里簡單介紹一下mysql中常用索引:

在添加索引之前最好先查看一下該表中已存在哪些索引:show index from 表名;

1、主鍵索引

注意: 主鍵索引一張表中只能有一個,但是可以添加多個索引 比如:唯一索引、普通索引、全文索引。

主鍵索引:一般在建表的時候就添加了 比如:id 一般是主鍵索引加自動遞增。

建表后添加主鍵索引 :alter table table_name add primary key (column name);

主鍵索引的特點:不能為空且唯一。

2、普通索引

創(chuàng)建普通索引: alter table table_name add index 索引名(column1,column2);

3、唯一索引

創(chuàng)建唯一索引:ALTER TABLE `table_name` ADD UNIQUE (`column`);

唯一索引與主鍵索引的區(qū)別:

唯一索引:可以有多個null 但數(shù)據(jù)內(nèi)容不能重復

主鍵索引:不能為null,且內(nèi)容只能唯一。

兩個區(qū)別就在于主鍵索引不能為null 唯一索引可以有多個null 其余都一樣。

4、全文索引

全文索引只有MyISAM有效(mysql5.6之后InnoDB也支持了全文索引)[5.7不支持MyISAM]

全文索引主要針對文本文件,比如文章、標題。

在創(chuàng)建表時創(chuàng)建全文索引:

    CREATE TABLE `article` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
     `title` varchar(200) DEFAULT NULL,
 `    content` text,
      PRIMARY KEY (`id`),
      FULLTEXT KEY `title` (`title`,`content`)
      ) ENGINE=MyISAM(5.6之后InnoDB也支持全文索引 、5.7不支持MyISAM引擎) DEFAULT CHARSET=utf8;

在現(xiàn)有表中創(chuàng)建全文索引:

ALTER TABLE article ADD FULLTEXT INDEX fulltext_article(title,content);

創(chuàng)建完全文索引之后使用也有要注意的地方:

眾所周知在數(shù)據(jù)庫中進行模糊查詢是使用like關鍵字進行查詢的,例如:

SELECT * FROM article WHERE content LIKE ‘%查詢字符串%';

那么,我們在使用全文索引也這樣使用嗎?當然不是,我們必須使用特有的語法才能使用全文索引進行查詢,例如,我們想要在article表的title和content列中全文檢索指定的查詢字符串,我們可以如下編寫SQL語句:

SELECT * FROM article WHERE MATCH(title,content) AGAINST (‘查詢字符串');

強烈注意:MySql自帶的全文索引只能對英文進行全文檢索,目前無法對中文進行全文檢索。如果需要對包含中文在內(nèi)的文本數(shù)據(jù)進行全文檢索,我們需要采用Sphinx(斯芬克斯)/Coreseek技術來處理中文。

注:目前,使用MySql自帶的全文索引時,如果查詢字符串的長度過短將無法得到期望的搜索結果。MySql全文索引所能找到的詞默認最小長度為4個字符。另外,如果查詢的字符串包含停止詞,那么該停止詞將會被忽略。

如果可能,請盡量先創(chuàng)建表并插所有數(shù)據(jù)后再創(chuàng)建全文索引,而不要在創(chuàng)建表時就直接創(chuàng)建全文索引,因為前者比后者的全文索引效率要高。

刪除索引sql語句:alter table table_name drop index 索引名;

通過上面的簡單介紹后,那么應該在哪些字段上添加索引呢?

    1、 頻繁查詢的字段,應該創(chuàng)建索引。

    2、更新非常頻繁的字段,不應該創(chuàng)建索引。

    3、唯一性太差的字段,比如 gender字段,就不應該創(chuàng)建索引。

    4、不會出現(xiàn)在where條件之后的字段,不應該創(chuàng)建索引。

滿足一下條件,應該創(chuàng)建索引:

        1、頻繁要查詢的字段,經(jīng)常出現(xiàn)在where條件后面的字段,應該創(chuàng)建索引。

        2、更新不頻繁的字段,可以創(chuàng)建索引。

索引使用的注意事項

    1.對于創(chuàng)建的多列索引,只要查詢條件使用了最左邊的列,索引一般就會被使用。

  •             比如我們對title,content 添加了復合索引
  •             select * from table_name where title = 'test';會用到索引
  •             select * from table_name where content = 'test';不會用到索引

    2.對于使用like的查詢,查詢?nèi)绻?nbsp;‘%a’不會使用到索引 ,而 like 'a%'就會用到索引。最前面不能使用%和_這樣的變化值

    3.如果條件中有or,即使其中有條件帶索引也不會使用。

    4.如果列類型是字符串,那一定要在條件中將數(shù)據(jù)使用引號引用起來。

  •         查看索引的使用情況:show status like‘Handler_read%’;  
  •         handler_read_key:這個值越高越好,越高表示使用索引查詢到的次數(shù)。
  •         handler_read_rnd_next:這個值越高,說明查詢低效。

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接

相關文章

  • mysql8.0.21下載安裝詳細教程

    mysql8.0.21下載安裝詳細教程

    這篇文章主要介紹了mysql8.0.21下載安裝詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • mysql8 公用表表達式CTE的使用方法實例分析

    mysql8 公用表表達式CTE的使用方法實例分析

    這篇文章主要介紹了mysql8 公用表表達式CTE的使用方法,結合實例形式分析了mysql8 公用表表達式CTE的基本功能、原理使用方法及相關操作注意事項,需要的朋友可以參考下
    2020-02-02
  • windows下mysql 8.0.12安裝步驟及基本使用教程

    windows下mysql 8.0.12安裝步驟及基本使用教程

    這篇文章主要為大家詳細介紹了windows下mysql 8.0.12安裝步驟及基本使用教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Mysql?中的多表連接和連接類型詳解

    Mysql?中的多表連接和連接類型詳解

    這篇文章詳細介紹了MySQL中的多表連接及其各種類型,包括內(nèi)連接、左連接、右連接、全外連接、自連接和交叉連接,通過這些連接方式,可以將分散在不同表中的相關數(shù)據(jù)組合在一起,從而進行更復雜的查詢和分析,感興趣的朋友一起看看吧
    2025-01-01
  • mysql 生成連續(xù)日期及變量賦值

    mysql 生成連續(xù)日期及變量賦值

    這篇文章主要介紹了mysql 生成連續(xù)日期及變量賦值的相關資料,分享內(nèi)容及代碼詳細,具有一的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • mysql 忘記密碼的解決方法(linux和windows小結)

    mysql 忘記密碼的解決方法(linux和windows小結)

    下面是linux和windows下mysql丟失密碼的解決辦法
    2008-12-12
  • MYSQL中統(tǒng)計查詢結果總行數(shù)的便捷方法省去count(*)

    MYSQL中統(tǒng)計查詢結果總行數(shù)的便捷方法省去count(*)

    查看手冊后發(fā)現(xiàn)SQL_CALC_FOUND_ROWS關鍵詞的作用是在查詢時統(tǒng)計滿足過濾條件后的結果的總數(shù)(不受 Limit 的限制)具體使用如下,感興趣的朋友可以學習下
    2013-07-07
  • myeclipse中連接mysql數(shù)據(jù)庫示例代碼

    myeclipse中連接mysql數(shù)據(jù)庫示例代碼

    這篇文章主要為大家詳細介紹了MyEclipse連接MySQL數(shù)據(jù)庫圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • MySQL時間差8小時的解決方案

    MySQL時間差8小時的解決方案

    本文介紹了在開發(fā)中遇到的時間問題,包括MySQL時間與系統(tǒng)時間不符、JDBC連接時區(qū)設置以及使用Jackson時可能出現(xiàn)的JSON時區(qū)問題,重點講解了如何修改MySQL時區(qū)、設置JDBC連接參數(shù)和調(diào)整JSON日期格式的時區(qū),需要的朋友可以參考下
    2024-07-07
  • MySQL主從同步原理及應用

    MySQL主從同步原理及應用

    日常工作中,MySQL數(shù)據(jù)庫是必不可少的存儲,其中讀寫分離基本是標配,而這背后需要MySQL開啟主從同步,形成一主一從、或一主多從的架構。本篇文章我們就來解紹MySQL主從同步原理及應用,需要的朋友可以參考一下
    2021-10-10

最新評論