《MySQL——InnoDB與Memory以及臨時表》

InooDB與Memory

數據組織方式不同:

  • InnoDB引擎把數據放在主鍵索引上,其他索引上保存的是主鍵id。為索引組織表
  • Memory引擎把數據單獨存放,索引上保存數據位置。為堆組織表

典型不同處:

1、InnoDB表的數據總是有序存放的,而Memory表數據是按照寫入順序存放、

2、當數據文件有空洞時,InnoDB表在插入新數據時,為了保證數據有序性,總是放在右側。而Memory表找到空位就可以插入

3、數據位置發生變化的時候,InnoDB表修改的是主鍵索引,Memory表需要修改索引值

4、InnoDB支持變長數據類型,不同記錄的長度可能不同。Memory表使用固定長度,每行數據長度相同

Memory表默認使用的是hash索引,所以不支持范圍查詢,當然也可以修改:

alter table t1 add index a_btree_index using btree (id);

Memory 表用于臨時表

Memory表有兩個問題:

1、Memory不支持行鎖,只支持表鎖,不適用于并發場合
2、Memory數據放在內存中,數據庫重啟,所有Memory表都會被清空

Memory表用于臨時表好處:

1、臨時表不會被其他線程訪問,沒有并發性的問題

2、臨時表重啟后也是需要刪除的,清空數據問題不大

3、備庫的臨時表也不會影響主庫的用戶線程

并且相對于InnoDB作為臨時表,它還有以下好處:

1、Memory使用內存表不需要寫磁盤,往臨時表寫數據速度更快

2、Memory索引使用hash索引,查找速度比B-Tree索引快

3、對于小數據的臨時表,占用內存有限

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

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

相關文章

Oracle 用戶 profile 屬性 轉

--查看profile 內容 select * from dba_profiles where profilePF_EAGLE; --查看用戶的profiles select username,profile from dba_users; --查看是否啟用動態資源限制參數 SHOW PARAMETER RESOURCE_LIMIT; --啟用限制 ALTER SYSTEM SET RESOURCE_LIMITTRUE SCOPEBOTH; --創建…

CUL8R的完整形式是什么?

CUL8R:稍后再見 (CUL8R: See You Later) CUL8R is an abbreviation of "See You Later". CUL8R是“稍后見”的縮寫 。 It is an expression, which is commonly used in messaging or chatting on social media networking sites like Facebook, Yahoo M…

SuperSpider——打造功能強大的爬蟲利器

SuperSpider——打造功能強大的爬蟲利器 博文作者:加菲 發布日期:2013-12-11 閱讀次數:4506 博文內容: 1.爬蟲的介紹 圖1-1 爬蟲(spider) 網絡爬蟲(web spider)是一個自動的通過網絡抓取互聯網上的網頁的程序&#xf…

《MySQL——關于grant賦權以及flush privileges》

先上總結圖: 對于賦予權限或者收回權限還是創建用戶,都會涉及兩個操作: 1、磁盤,mysql.user表,用戶行所有表示權限的字段的值的修改 2、內存,acl_users找到用戶對應的對象,將access值修改 g…

對Spring的理解

1、Spring實現了工廠模式的工廠類&#xff0c;這個類名為BeanFactory實際上是一個接口&#xff0c;在程序中通常BeanFactory的子類ApplicationContext。Spring相當于一個大的工廠類&#xff0c;在其配置文件中通過<bean>元素配置用于創建實例對象的類名和實例對象的屬性。…

Java中的null是什么?

As we know null is an important concept in every language not only in Java but here we will study various factors regarding null. 我們知道null在每種語言中都是重要的概念&#xff0c;不僅在Java中&#xff0c;在這里我們還將研究有關null的各種因素。 null is a ver…

《MySQL——分區表小記》

分區表的組織形式 以年份為分割方式&#xff0c;對表進行分割&#xff1a; CREATE TABLE t (ftime datetime NOT NULL,c int(11) DEFAULT NULL,KEY (ftime) ) ENGINEInnoDB DEFAULT CHARSETlatin1 PARTITION BY RANGE (YEAR(ftime)) (PARTITION p_2017 VALUES LESS THAN (201…

實戰Windows下安裝boost

Boost大部分組件無需編譯可直接包含頭文件使用&#xff0c;但還有一些庫需要編譯成靜態庫或動態庫才能使用。可使用下文將提到的bjam工具&#xff1a;bjam --show-libraries 查看必須編譯才能使用的庫。 編譯安裝環境&#xff1a;Win7&#xff0c;VS2008(msvc-9.0) 1. 下載boos…

postgresq dur_DUR的完整形式是什么?

postgresq dur杜爾(DUR)&#xff1a;您還記得嗎&#xff1f; (DUR?: Do You Remember?) DUR? is an abbreviation of "Do You Remember?". DUR&#xff1f; 是“您還記得嗎&#xff1f;”的縮寫。 。 It is an expression, which is commonly used in messaging…

gsettings-desktop-schemas : 破壞: mutter (< 3.31.4) 但是 3.28.4-0ubuntu18.04.2 正要被安裝解決方案

完整報錯&#xff1a; dyydyy-Lenovo-ThinkBook-14-IIL:~$ sudo apt install build-essential 正在讀取軟件包列表... 完成 正在分析軟件包的依賴關系樹 正在讀取狀態信息... 完成 有一些軟件包無法被安裝。如果您用的是 unstable 發行版&#xff0c;這也許是 因…

程序內存檢測

本文參考自&#xff1a;http://www.cnblogs.com/hebeiDGL/p/3410188.html static System.Windows.Threading.DispatcherTimer dispacherTimer;static string total "DeviceTotalMemory";static string current "ApplicationCurrentMemoryUsage";static s…

動態規劃天天練1

本來很久以前就打算每天練一道動態規劃題的&#xff0c;但每每由于作業太多而中斷&#xff0c;現在終于停課了......廢話不多說&#xff0c;第一道題就給了我迎頭一棒&#xff0c;不僅想了很久&#xff0c;連題解都看了很久。。。水平相當不足啊啊&#xff0c;不多說廢話&#…

AAS的完整形式是什么?

AAS&#xff1a;活著和微笑 (AAS: Alive And Smiling) AAS is an abbreviation of "Alive And Smiling". AAS是“活著和微笑”的縮寫 。 It is an expression, which is commonly used in messaging or chatting on social media networking sites like Facebook, Y…

《MySQL 8.0.22執行器源碼分析(1)——execute iterator一些記錄》

目錄一條語句的函數調用棧順序8.0使用迭代器模式改進executorint *handler*::ha_rnd_next(*uchar* **buf*)int *TableScanIterator*::Read()int FilterIterator :: Read&#xff08;&#xff09;int HashJoinIterator::Read()int NestedLoopIterator :: Read&#xff08;&#…

關于autoupgader的狗屎問題

由于win7和xp的權限問題&#xff0c;導致這個自動升級玩意不正常。這個狗屎問題很簡單&#xff0c;把exe文件的兼容性設定該一下。真是氣死灑家了。轉載于:https://www.cnblogs.com/usegear/p/3679097.html

strcspn函數

函數原型&#xff1a;extern int strcspn(char *str1,char *str2) 參數說明&#xff1a;str1為參照字符串&#xff0c;即str2中每個字符分別與str1中的每個字符比較。 所在庫名&#xff1a;#include <string.h> 函數功能&#xff1a;以str1為參照&#xff0c…

c語言 sqlite_SQLite與C語言

c語言 sqliteSQLite數據庫簡介 (Introduction to SQLite database) SQLite is a relational database; it is used for embedded devices. Now a day it is using worldwide for different embedded devices. SQLite是一個關系數據庫。 它用于嵌入式設備。 如今&#xff0c;它已…

《MySQL 8.0.22執行器源碼分析(2)解讀函數 ExecuteIteratorQuery》

函數代碼 bool SELECT_LEX_UNIT::ExecuteIteratorQuery(THD *thd) {THD_STAGE_INFO(thd, stage_executing);DEBUG_SYNC(thd, "before_join_exec");Opt_trace_context *const trace &thd->opt_trace;Opt_trace_object trace_wrapper(trace);Opt_trace_object…

C語言,如何產生隨機數

1. 基本函數 在C語言中取隨機數所需要的函數是: int rand(void);void srand (unsigned int n); rand()函數和srand()函數被聲明在頭文件stdlib.h中,所以要使用這兩個函數必須包含該頭文件: #include <stdlib.h> 2. 使用方法 rand()函數返回0到RAND_MAX之間的偽隨機數(pse…

MongoDB源碼概述——內存管理和存儲引擎

數據存儲&#xff1a; 之前在介紹Journal的時候有說到為什么MongoDB會先把數據放入內存&#xff0c;而不是直接持久化到數據庫存儲文件&#xff0c;這與MongoDB對數據庫記錄文件的存儲管理操作有關。MongoDB采用操作系統底層提供的內存文件映射&#xff08;MMap&#xff09;的方…