91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

MySQL Memory存儲引擎的優勢及性能測試

發布時間:2021-09-14 15:39:21 來源:億速云 閱讀:298 作者:chen 欄目:數據庫

本篇內容主要講解“MySQL Memory存儲引擎的優勢及性能測試”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL Memory存儲引擎的優勢及性能測試”吧!

測試腳本:

雙擊代碼全選
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36/******************************************************MYSQL STORAGE ENGINE TESThttp://wu-jian.cnblogs.com/2011-11-29******************************************************/CREATE DATABASE IF NOT EXISTS test     CHARACTER SET 'utf8'     COLLATE 'utf8_general_ci';USE test;/******************************************************1.INNODB******************************************************/DROP TABLE IF EXISTS test_innodb;CREATE TABLE IF NOT EXISTS test_innodb (     id                    INT UNSIGNED AUTO_INCREMENT                                COMMENT 'PK',     obj                    CHAR(255) NOT NULL DEFAULT ''                            COMMENT 'OBJECT',    PRIMARY KEY (id)) ENGINE=INNODB;/******************************************************2.MYISAM******************************************************/DROP TABLE IF EXISTS test_myisam;CREATE TABLE IF NOT EXISTS test_myisam (     id                    INT UNSIGNED AUTO_INCREMENT                                COMMENT 'PK',     obj                    CHAR(255) NOT NULL DEFAULT ''                            COMMENT 'OBJECT',     PRIMARY KEY (id)) ENGINE=MYISAM;/******************************************************1.MEMORY******************************************************/DROP TABLE IF EXISTS test_memory;CREATE TABLE IF NOT EXISTS test_memory (     id                    INT UNSIGNED AUTO_INCREMENT                                COMMENT 'PK',     obj                    CHAR(255) NOT NULL DEFAULT ''                            COMMENT 'OBJECT',     PRIMARY KEY (id)) ENGINE=MEMORY;

  測試代碼:

雙擊代碼全選
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170using System;using System.Data;using MySql.Data.MySqlClient;namespace MySqlEngineTest{     class Program     {         const string OBJ = "The MEMORY storage engine creates tables with contents that are stored in memory. Formerly, these were known as HEAP tables. MEMORY is the preferred term, although HEAP remains supported for backward compatibility.";         const string SQL_CONN = "Data Source=127.0.0.1;Port=3308;User ID=root;Password=root;DataBase=test;Allow Zero Datetime=true;Charset=utf8;pooling=true;"         const int LOOP_TOTAL = 10000;         const int LOOP_BEGIN = 8000;         const int LOOP_END = 9000;         #region Database Functions         public static bool DB_InnoDBInsert(string obj)         {             string commandText = "INSERT INTO test_innodb (obj) VALUES (?obj)";             MySqlParameter[] parameters = {                 new MySqlParameter("?obj", MySqlDbType.VarChar, 255)            };            parameters[0].Value = obj;            if (DBUtility.MySqlHelper.ExecuteNonQuery(SQL_CONN, CommandType.Text, commandText, parameters) > 0)                 return true;            else                return false;                 public static string DB_InnoDBSelect(int id)         {            string commandText = "SELECT obj FROM test_innodb WHERE id = ?id";             MySqlParameter[] parameters = {                 new MySqlParameter("?id", MySqlDbType.Int32)             };             parameters[0].Value = id;             return DBUtility.MySqlHelper.ExecuteScalar(SQL_CONN, CommandType.Text, commandText, parameters).ToString();                 public static bool DB_MyIsamInsert(string obj)         {             string commandText = "INSERT INTO test_myisam (obj) VALUES (?obj)";             MySqlParameter[] parameters = {                  new MySqlParameter("?obj", MySqlDbType.VarChar, 255)            };            parameters[0].Value = obj;            if (DBUtility.MySqlHelper.ExecuteNonQuery(SQL_CONN, CommandType.Text, commandText, parameters) > 0)                 return true;             else                 return false;        }              public static string DB_MyIsamSelect(int id)         {             string commandText = "SELECT obj FROM test_myisam WHERE id = ?id";            MySqlParameter[] parameters = {                 new MySqlParameter("?id", MySqlDbType.Int32)             };             parameters[0].Value = id;             return DBUtility.MySqlHelper.ExecuteScalar(SQL_CONN, CommandType.Text, commandText, parameters).ToString();        }         public static bool DB_MemoryInsert(string obj)         {             string commandText = "INSERT INTO test_memory (obj) VALUES (?obj)";             MySqlParameter[] parameters = {                  new MySqlParameter("?obj", MySqlDbType.VarChar, 255)            };            parameters[0].Value = obj;             if (DBUtility.MySqlHelper.ExecuteNonQuery(SQL_CONN, CommandType.Text, commandText, parameters) > 0)                return true;             else                return false;                 public static string DB_MemorySelect(int id)         {             string commandText = "SELECT obj FROM test_memory WHERE id = ?id";            MySqlParameter[] parameters = {                 new MySqlParameter("?id", MySqlDbType.Int32)             };             parameters[0].Value = id;             return DBUtility.MySqlHelper.ExecuteScalar(SQL_CONN, CommandType.Text, commandText, parameters).ToString();                 #endregion         #region Test Functions InnoDB              static void InnoDBInsert()         {            long begin = DateTime.Now.Ticks;             for (int i = 0; i < LOOP_TOTAL; i++)            {                 DB_InnoDBInsert(OBJ);             }            Console.WriteLine("InnoDB Insert Result: {0}", DateTime.Now.Ticks - begin);                 static void InnoDBSelect()         {             long begin = DateTime.Now.Ticks;             for (int i = LOOP_BEGIN; i < LOOP_END; i++)             {                DB_InnoDBSelect(i);            }            Console.WriteLine("InnoDB SELECT Result: {0}", DateTime.Now.Ticks - begin);        }         static void MyIsamInsert()        {            long begin = DateTime.Now.Ticks;             for (int i = 0; i < LOOP_TOTAL; i++)            {                 DB_MyIsamInsert(OBJ);            }            Console.WriteLine("MyIsam Insert Result: {0}", DateTime.Now.Ticks - begin);         }         static void MyIsamSelect()        {            long begin = DateTime.Now.Ticks;             for (int i = LOOP_BEGIN; i < LOOP_END; i++)             {                DB_MyIsamSelect(i);            }             Console.WriteLine("MyIsam SELECT Result: {0}", DateTime.Now.Ticks - begin);                 static void MemoryInsert()         {            long begin = DateTime.Now.Ticks;            for (int i = 0; i < LOOP_TOTAL; i++)            {                DB_MemoryInsert(OBJ);             }             Console.WriteLine("Memory Insert Result: {0}", DateTime.Now.Ticks - begin);         }         static void MemorySelect()         {            long begin = DateTime.Now.Ticks;            for (int i = LOOP_BEGIN; i < LOOP_END; i++)             {                 DB_MemorySelect(i);             }            Console.WriteLine("Memory SELECT Result: {0}", DateTime.Now.Ticks - begin);         }         static void DataTableInsertAndSelect()         {             //Insert             DataTable dt = new DataTable();            dt.Columns.Add("id", Type.GetType("System.Int32"));             dt.Columns["id"].AutoIncrement = true;             dt.Columns.Add("obj", Type.GetType("System.String"));            DataRow dr = null;            long begin = DateTime.Now.Ticks;            for (int i = 0; i < LOOP_TOTAL; i++)             {                 dr = null;                dr = dt.NewRow();                dr["obj"] = OBJ;                 dt.Rows.Add(dr);            }             Console.WriteLine("DataTable Insert Result: {0}", DateTime.Now.Ticks - begin);             //Select             long begin1 = DateTime.Now.Ticks;             for (int i = LOOP_BEGIN; i < LOOP_END; i++)             {                dt.Select("id = " + i);             }            Console.WriteLine("DataTable Select Result: {0}", DateTime.Now.Ticks - begin1);        }         #endregion          static void Main(string[] args)         {             InnoDBInsert();             InnoDBSelect();            //restart mysql to avoid query cache             MyIsamInsert();             MyIsamSelect();             //restart mysql to avoid query cache             MemoryInsert();             MemorySelect();             DataTableInsertAndSelect();         }     }//end class}

  總結
  .Net Cache讀寫性能毫無疑問大大領先于數據庫引擎
  InnoDB寫入耗時大概是MyIsam和Memory的5倍左右,它的行鎖機制必然決定了寫入時的更多性能開銷,而它的強項在于多線程的并發處理,而本測試未能體現其優勢。
  三種數據庫引擎在SELECT性能上差不多,Memory稍占優,同樣高并發下的比較有待進一步測試。

到此,相信大家對“MySQL Memory存儲引擎的優勢及性能測試”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

双牌县| 广灵县| 栾城县| 滦平县| 镇江市| 丽江市| 东方市| 垫江县| 广丰县| 湘潭市| 田林县| 太和县| 东乡| 安溪县| 宝鸡市| 固原市| 巢湖市| 嘉峪关市| 颍上县| 凤凰县| 钟祥市| 贵定县| 新营市| 黎川县| 瑞金市| 商城县| 佛山市| 得荣县| 芒康县| 襄樊市| 莒南县| 泰和县| 长子县| 滨海县| 吉木乃县| 巴马| 社旗县| 五原县| 广水市| 阿克苏市| 治县。|