mysql使用索引的註意事項

来源:https://www.cnblogs.com/zhengze/archive/2019/04/13/10702170.html
-Advertisement-
Play Games

使用索引的註意事項 使用索引時,有以下一些技巧和註意事項: 1.索引不會包含有NULL值的列 只要列中包含有NULL值都將不會被包含在索引中,複合索引中只要有一列含有NULL值,那麼這一列對於此複合索引就是無效的。所以我們在資料庫設計時不要讓欄位的預設值為NULL。 2.使用短索引 對串列進行索引, ...


使用索引的註意事項

使用索引時,有以下一些技巧和註意事項:

1.索引不會包含有NULL值的列

只要列中包含有NULL值都將不會被包含在索引中,複合索引中只要有一列含有NULL值,那麼這一列對於此複合索引就是無效的。所以我們在資料庫設計時不要讓欄位的預設值為NULL。

2.使用短索引

對串列進行索引,如果可能應該指定一個首碼長度。例如,如果有一個CHAR(255)的列,如果在前10個或20個字元內,多數值是惟一的,那麼就不要對整個列進行索引。短索引不僅可以提高查詢速度而且可以節省磁碟空間和I/O操作。

3.索引列排序

MySQL查詢只使用一個索引,因此如果where子句中已經使用了索引的話,那麼order by中的列是不會使用索引的。因此資料庫預設排序可以符合要求的情況下不要使用排序操作;儘量不要包含多個列的排序,如果需要最好給這些列創建複合索引。

4.like語句操作

一般情況下不鼓勵使用like操作,如果非使用不可,如何使用也是一個問題。like “%aaa%” 不會使用索引而like “aaa%”可以使用索引。

5.不要在列上進行運算

複製代碼代碼如下:


select * from users where YEAR(adddate)<2007;

 

將在每個行上進行運算,這將導致索引失效而進行全表掃描,因此我們可以改成:

 

複製代碼代碼如下:

select * from users where adddate<‘2007-01-01';

 

6.不使用NOT IN和<>操作

 

下句會使用索引:

SELECT * FROM mytable WHERE username like'admin%'

下句就不會使用:

SELECT * FROM mytable WHEREt Name like'%admin'


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 方法一:暫時修改機器名:hostname 用hostname命令可以臨時修改機器名,但機器重新啟動之後就會恢複原來的值。 #hostname //查看機器名 #hostname -i //查看本機器名對應的ip地址 方法二:永久性修改機器名:修改系統配置文件 修改/etc/sysconfig/net ...
  • 1.統計本目錄下除`./apps/myapp/migrations`的所有py文件 2.單個文件行數 ...
  • 要安裝centos系統,就必須得有centos系統軟體安裝程式,可以通過瀏覽器訪問centos官網http://www.centos.org,然後找到Downloads - > mirrors鏈接,點擊後進入下載,但是由於這是國外的網址,下載速度肯定受限。 因此可以使用國內的鏡像源 下載安裝激活vm ...
  • 使用RouterOS, 搭建虛擬路由器,並且配置多個網關互通。配置步驟如下。 基礎配置 1. RouterOS 伺服器,設置如下 2. VM 不同網段的設置 == 192.168.4.X 網段 設置gateway為RouterOS伺服器上的對應網段的IP = 192.168.4.1 然後,記得重啟n ...
  • 概述 NewSQL日漸火熱,無論還是開源的TiDB,CockroachDB還是互聯網大廠的Spanner,Oceanbase都號稱NewSQL,也就是分散式資料庫。NewSQL的典型特征就是,支持SQL,支持事務,高性能,低成本,高可靠,強一致,易擴展,運維友好等。從NewSQL的演進來看,所謂Ne ...
  • 一、事務的四大特性(ACID) 瞭解事務隔離級別之前不得不瞭解的事務的四大特性。 1、原子性(Atomicity) 事務開始後所有操作,要麼全部做完,要麼全部不做。事務是一個不可分割的整體。事務在執行過程中出錯,會回滾到事務開始之前的狀態,以此來保證事務的完整性。類似於原子在物理上的解釋:指化學反應 ...
  • 1、前置條件 MySQL資料庫中存在表user_info,其結構和數據如下: 2、自定義函數 函數:可以完成特定功能的一段SQL集合。MySQL支持自定義函數來完成特定的業務功能。 創建自定義函數(User Defined Function 簡稱UDF)的語法如下: 調用UDF的語法如下: 創建無參 ...
  • 資料庫事務併發帶來臟讀、不可重覆讀和幻讀等問題,為瞭解決這三個問題,出現了事務隔離級別,如:未提交讀取(read uncommitted)、已提交讀取(read committed)、可重覆讀取(repeatable read)、串列化(rerializable)。後續文章詳細介紹事務併發帶來的各個 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...