MySQL數據庫存儲引擎

  • MySQL數據庫存儲引擎

    • 存儲引擎概念

      • 存儲引擎也稱為表類型

      • 通過不同的技術比如說,存儲機制,索引技巧,鎖定水平等等,來提供不同的功能。

    • 查看MySQL支持的存儲引擎

      • show engines\G;

    • 常用引擎比較

      • 對事務有需求

        • innodb

      • 對寫入,無索引查詢有需求

        • myisam

      • memory不如使用非關系數據庫

    • 引擎選擇

      • 存儲引擎是針對表來說的,選擇什么樣的存儲引擎取決于表內數據的類型,一旦確定了存儲引擎并開始使用后,在修改存儲引擎會造成較大的麻煩。因此一定要結合需求來慎重決定存儲引擎。

    • myisam存儲引擎

      • 文件

        • .frm 元數據(表結構)

        • .MYD 表數據

        • .MYI 表索引

      • 表級鎖定

    • innodb存儲引擎

      • 文件

        • .frm 表結構

        • .ibd 表數據與表索引

      • 行級鎖定,外鍵約束

        • 當用模糊查詢時還是會鎖定表 where沒有使用主鍵時。

      • 優勢

        • 能夠處理多并發的更新請求

        • 事務型存儲引擎

        • 自動災難恢復

        • 支持外鍵

        • 支持自增長設置

          • auto_increment

          • 一般設置為自增長的列就適合作為主鍵索引,或者唯一索引。

    • 修改存儲引擎的方法

      • 方法一

        • alter table 表名 engine=引擎名;

      • 方法二

        • 修改配置文件/etc/my.cnf

          • default-storage-engine=引擎名稱

      • 方法三

        • 創建時指定

          • create table 表名(字段,。。。)values (值,。。。)engine=引擎名稱;

      • 方法四

        • 臨時修改,生效整個登錄過程

          • set default_storage_engine=引擎名稱

    • 實驗比較

      • 從多個因素比較myisam與innodb的差異

      • 實驗準備

        • 創建庫

          • create database auth

          • 進入到該庫:use auth

        • 創建表

          • create table tm(id int(20) primary key auto_increment,name char(30)) engine=myisam;

          • create table ti(id int(20) primary key auto_increment,name char(30)) engine=innodb;

          • 將id列設為主鍵以及自動增長方便”存儲過程“的編寫。

        • 創建存儲過程

          • 修改數據庫結束符

            • delimiter $

          • 創建存儲過程

            • create procedure insertm() begin set @i=1; while @i<=10000000 do insert into tm(name) values(concat("wy",@i)); set @i=@i+1; end while; end $

            • 在創建第二個存儲過程只需要將上個存儲過程中的m修改為i即可表示時innodb的引擎。

          • 最后修改回結束符

            • delimiter $

        • 呼叫存儲過程

          • call insertm

          • call inserti

          • 從這個過程中可以明顯的比較出兩者的差異,myisam時快的多。

        • 使用無索引搜索

          • select * from tm where name>"wy100" and name <"wy10000000"

          • 進行相關查詢后發現myisam在無索引搜索方面有優勢。

        • 使用索引搜索

          • select * from tm where id>10 and id<999999;

          • 在這方面inonodb有較大優勢

將上述全部復制,粘貼到xmind即可看到條理性筆記。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37304.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37304.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37304.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TiDB-從0到1-數據導出導入

TiDB從0到1系列 TiDB-從0到1-體系結構TiDB-從0到1-分布式存儲TiDB-從0到1-分布式事務TiDB-從0到1-MVCCTiDB-從0到1-部署篇TiDB-從0到1-配置篇TiDB-從0到1-集群擴縮容 一、數據導出 TiDB中通過Dumpling來實現數據導出&#xff0c;與MySQL中的mysqldump類似&#xff0c;其屬于…

Spring Boot中如何配置和使用多數據源

Spring Boot中如何配置和使用多數據源 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天&#xff0c;我們將深入探討如何在Spring Boot應用中配置和使用多數據…

oracle with as 是什么并且怎么用

Oracle中的WITH AS語句&#xff0c;也被稱為Common Table Expressions&#xff08;CTE&#xff09;&#xff0c;是一個用于定義臨時結果集或視圖的子句。這個臨時結果集或視圖只在當前的查詢中存在&#xff0c;并且在查詢完成后會被自動刪除。使用WITH AS可以提高SQL語句的可讀…

JavaWeb——MySQL:navicate客戶端工具簡單使用

目錄 1. 連接 2. 新建數據庫 3. 使用數據庫 4. 新建表 5.使用表 6. 導出數據庫 我這里是英文版&#xff0c;沒有進行漢化。 1. 連接 點擊左上角Connection&#xff0c;選擇MySQL&#xff0c;&#xff08;我連接的是自己計算機上的數據庫&#xff09;連接名輸入&#x…

使用ScheduledExecutorService進行任務調度

使用ScheduledExecutorService進行任務調度 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在軟件開發中&#xff0c;任務調度是一項重要的技術需求&#xff…

抖音開放平臺運營同學聯系我了,非常感謝

大家好&#xff0c;我是小悟 是怎么個事呢&#xff1f; 前幾天在對接抖音開放平臺&#xff0c;服務商代開發小程序里面的小程序備案&#xff0c;上傳備案圖片接口遇到了問題&#xff0c;具體的問題可詳閱【抖音開放平臺&#xff0c;這誰寫的&#xff0c;要扣績效吧】。 評論…

Zoom視頻會議的虛擬背景功能:打造個性化會議體驗

在遠程工作和在線交流日益普及的今天&#xff0c;視頻會議已成為連接人們的橋梁。Zoom視頻會議軟件因其出色的音視頻質量和豐富的功能而廣受歡迎。其中&#xff0c;虛擬背景功能是Zoom的一大亮點&#xff0c;它不僅能夠保護用戶隱私&#xff0c;還能為會議增添趣味性。本文將詳…

Java編程基本功大揭秘 | 詳解深入分析Java線程池源碼和底層原理,掌握實戰技巧【1】

詳解深入分析Java線程池源碼和底層原理 文章大綱引言Java線程池概念及重要性 ThreadPoolExecutor類的概述ThreadPoolExecutor類的基本功能和作用**基本功能****核心作用** ThreadPoolExecutor主要構造函數及其參數繼承關系鏈功能介紹ThreadPoolExecutor 構造器構造器參數構造器…

c語言自動售貨機

C語言編寫的自動售貨機程序可以模擬真實自動售貨機的基本功能&#xff0c;例如選擇商品、顯示價格、付款和找零。下面是一個簡單的示例代碼&#xff0c;展示了一個基本的自動售貨機程序&#xff1a; #include <stdio.h>// 商品結構體 typedef struct {char name[30];int…

破解對LabVIEW的偏見

LabVIEW被廣泛應用于科學研究、工程測試和自動化控制領域&#xff0c;具有專業性和高效的開發能力。盡管有人對其存在偏見&#xff0c;認為不如C語言&#xff0c;但LabVIEW的圖形化編程、強大集成能力、豐富社區支持和專業功能&#xff0c;使其在許多實際應用中表現出色。通過多…

Go語言環境安裝

Go下載地址 哪個能用用哪個。 https://go.dev/ https://golang.google.cn/&#xff08;Golang官網的官方鏡像&#xff09; Windows 使用.msi安裝包安裝 下載msi文件 安裝 雙擊運行go1.22.4.windows-amd64.msi Next 勾選I accept the terms in the License Agreement&…

收藏 | SSL證書無效的原因和解決辦法

當瀏覽器訪問一個使用SSL證書保護的網站時&#xff0c;會檢查其證書的有效性。如果發現證書存在問題&#xff0c;瀏覽器會顯示“SSL證書無效”的警告信息&#xff0c;提醒用戶存在潛在的安全風險。 “SSL證書無效”的警告可能會導致用戶離開站點&#xff08;并且永遠不會返回&…

MySQL高級-SQL優化-小結

文章目錄 1、insert 優化2、主鍵優化3、order by 優化4、group by 優化5、limit 優化6、count 優化7、update 優化 1、insert 優化 insert&#xff1a;批量插入、手動控制事務、主鍵順序插入 大批量插入&#xff1a;load data local infile 2、主鍵優化 主鍵長度盡量短、順序插…

系統漏洞復現與勒索病毒

知識點&#xff1a;SMB漏洞介紹、漏洞復現流程、勒索病毒攻擊與防護 滲透測試相關&#xff1a; 基本概念&#xff1a; 滲透測試就是利用我們所掌握的滲透知識&#xff0c;對網站進行一步一步的滲透&#xff0c;發現其中存在的漏洞和隱藏的風險&#xff0c;然后撰寫一篇測試報…

FastAPI教程I

本文參考FastAPI教程https://fastapi.tiangolo.com/zh/tutorial 第一步 import uvicorn from fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message": "Hello World"}if __name__ __main__:uvicorn.run(&quo…

GPT-4o模型到底有多強

近年來&#xff0c;人工智能技術突飛猛進&#xff0c;在自然語言處理&#xff08;NLP&#xff09;和計算機視覺等領域取得了令人矚目的成就。OpenAI推出的GPT-4o模型作為最新一代的語言模型&#xff0c;進一步提升了AI的能力&#xff0c;尤其在文檔分析、識圖生文、文生圖等功能…

elementUI的搭建使用過程

Element - The worlds most popular Vue UI framework 上面是elementUI的網站,進入網站 點擊右上角的組件按鈕 復制這段代碼到你的項目終端:npm i element-ui -S 加載完成后即可使用elementUI網站中的組件,使用它們只需要復制組件下面的代碼即可

Unity UGUI 實現簡單兩點連線功能

實現 記錄鼠標點擊位置為線段起點。 posStart Input.mousePosition; 創建一個Image 作為線段。 line new GameObject("line"); rtLine line.AddComponent<RectTransform>(); rtLine.pivot new Vector2(0, 0.5f); rtLine.localScale Vector3.one; img…

Linux 進程通信

1.什么是進程通信&#xff1f; 答&#xff1a;兩個或多個進程實現數據層面的交互&#xff1b;但是因為進程的獨立性&#xff0c;導致進程通信的成本較高&#xff1b; 2.為什么要通信&#xff1f; 答&#xff1a;多進程之間由協同的需求&#xff0c;所以通信&#xff1b;以下…

Java常用對象的快速初始化

在Java中&#xff0c;有多種方式來快速初始化各種常用對象&#xff0c;如字符串數組&#xff08;String[]&#xff09;&#xff0c;集合列表&#xff08;List&#xff09;&#xff0c;映射表&#xff08;Map&#xff09;&#xff0c;以及集合&#xff08;Set&#xff09;。不同…