溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL索引、視圖、存儲過程

發布時間:2020-02-25 17:23:38 來源:網絡 閱讀:248 作者:wx5d8ab22a0be5a 欄目:MySQL數據庫

一、索引的概念
數據庫中的索引與書籍中的目錄類似

  • 在一本書中,無需閱讀整本書,利用目錄就可以快速查找所需信息
  • 書中的目錄是一個詞語列表,其中表明了包含各個詞的頁碼
    數據庫索引
  • 在數據庫中,索引使數據庫程序無須對整個表進行掃描,就可以在其中找到所需數據
  • 數據庫中的索引是某個表中一列或者若干列值得集合,以及物理標識這些值得數據頁的邏輯指針清單
    索引優點:可以快速找到數據
    缺點:占用硬盤資源
    二、索引的作用
  • 設置了合適的索引之后,數據庫利用各種快速的定位技術,能夠大大加快查詢速率
  • 特別是當表很大時,或者查詢涉及到多個表時,使用索引可使查詢加快成千倍
  • 可以降低數據庫的IO讀寫成本,并且索引還可以降低數據庫的排序成本
  • 通過創建唯一性索引保證數據表數據的唯一性
  • 可以加快表與表之間的連接
  • 在使用分組和排序時,可大大減少分組和排序時間
    三、索引的分類
    普通索引
  • 這是最基本的索引類型,而且它沒有唯一性之類的限制
    唯一性索引
  • 這種索引和前面的“普通索引”基本相同,但有一個區別:索引列的所有值都只能出現一次,即必須唯一
  • 唯一性索引允許為空,但是只能有一次為空
    主鍵
  • 主鍵是一種唯一性索引,但它必須指定為“PRIMARY KEY”
    全文索引
  • MySQL從3.23.23版開始支持全文索引和全文檢索。在MySQL中,全文索引的索引類型為FULLTEXT,全文索引可以在VARCHAR或者TEXT類型的列上創建
    單列索引與多列索引
  • 索引可以是單列上創建的索引,也可以是在多列上創建的索引
    四、創建索引的原則依據
  • 表的主鍵、外鍵必須有索引
  • 數據量超過300行的表應該有索引
  • 經常與其他表進行連接的表,在連接字段(外鍵)上應該建立索引
  • 經常出現在Where子句中的字段,特別是大表的字段,應該建立索引
  • 索引應該建在選擇性高的字段上
  • 索引應該建在小字段上,對于大的文本字段甚至超長字段,不要建索引
  • 針對大的文本字段甚至超長字段,建立全文索引,fulltext
  • 唯一性太差的字段不適合建立索引
  • 更新太頻繁的字段不適合創建索引
    五、創建索引的方法
  • 根據企業需求選擇了合適的索引之后,可使用CREATE INDEX創建索引
  • CREATE INDEX加上各個索引關鍵字便可創建各個類型的索引
    實操過程
    MySQL索引、視圖、存儲過程
    MySQL索引、視圖、存儲過程
    MySQL索引、視圖、存儲過程
    1.創建普通索引
    MySQL索引、視圖、存儲過程
    MySQL索引、視圖、存儲過程
    刪除索引
    MySQL索引、視圖、存儲過程
    2.創建唯一索引
    MySQL索引、視圖、存儲過程
    刪除索引
    MySQL索引、視圖、存儲過程
    “alter table”創建唯一索引
    MySQL索引、視圖、存儲過程
    還有一種方式就是在創建表的時候,就定義索引。
    MySQL索引、視圖、存儲過程
    MySQL索引、視圖、存儲過程
    MySQL索引、視圖、存儲過程
    創建hobby表
    MySQL索引、視圖、存儲過程
    給hobby表添加數據
    MySQL索引、視圖、存儲過程
    將兩張表關聯在一起
    MySQL索引、視圖、存儲過程
    MySQL索引、視圖、存儲過程
    這就是典型的多表相連查詢
    避免冗余的代碼可以為表取別名
    MySQL索引、視圖、存儲過程
    視圖概述
    是一張虛擬的表,數據不存在視圖中,只是真實表的映射數據。利用條件篩選、分組、排序等產生出一個結果集,保存在內存中,并且做成持久化保存。(只保存映射)
    視圖占資源少,相當于軟連接,快捷方式
    真實表中數據發生變化,視圖也會隨之發生相應的變化。
    create view 視圖名稱 as 查詢語句(select id,name,age) from 表名 where(條件) id=1 or id=5;

    視圖的作用:可以根據不同的用戶,創建不同的視圖。根據權限查看不同的視圖;加強安全性;方便sql操作。
    實操
    創建視圖
    MySQL索引、視圖、存儲過程
    查看視圖
    MySQL索引、視圖、存儲過程
    存儲過程概述
    存儲過程:存儲過程多用于軟件開發方向
    防止代碼在網絡傳輸過程中被截獲,做了安全性保障
    原始狀態:代碼中需要嵌入sql語句:通過連接驅動(java就是jdbc)————把sql語句作為參數,傳遞給mysql數據庫進行執行。
    存儲過程是寫在數據庫中,并不是程序中。
    程序是通過調用存儲過程名稱去觸發操作,(類似shell中的函數),
    優點:代碼量優化,減少代碼量,
    傳輸安全,隱藏sql語句
    網絡優化。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女