iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL Memory存储引擎的优势及性能测试
  • 551
分享到

MySQL Memory存储引擎的优势及性能测试

2024-04-02 19:04:59 551人浏览 薄情痞子
摘要

本篇内容主要讲解“Mysql Memory存储引擎的优势及性能测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql Memory存储引擎的优势及性能测试

本篇内容主要讲解“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 36CREATE DATABASE IF NOT EXISTS test     CHARACTER SET 'utf8'     COLLATE 'utf8_general_ci';USE test;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;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;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存储引擎的优势及性能测试”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL Memory存储引擎的优势及性能测试

本文链接: https://www.lsjlt.com/news/60453.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL Memory存储引擎的优势及性能测试
    本篇内容主要讲解“MySQL Memory存储引擎的优势及性能测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL Memory存储引擎的优势及性能测试...
    99+
    2024-04-02
  • mysql中Memory存储引擎的特性有哪些
    这篇文章给大家分享的是有关mysql中Memory存储引擎的特性有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Memory表的每个表可以有多达32个索引。每个索引16列,以及500字节的最大键长度。存储引擎...
    99+
    2023-06-25
  • 如何进行MySQL Memory 存储引擎的浅析
    本篇文章给大家分享的是有关如何进行MySQL Memory 存储引擎的浅析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言 需求源自项目中...
    99+
    2024-04-02
  • mysql数据存储引擎InnoDB和MyISAM的优势及区别是什么
    这篇文章主要介绍“mysql数据存储引擎InnoDB和MyISAM的优势及区别是什么”,在日常操作中,相信很多人在mysql数据存储引擎InnoDB和MyISAM的优势及区别是什么问题上存在疑惑,小编查阅了...
    99+
    2024-04-02
  • MySQL存储引擎的功能介绍
    这篇文章主要介绍“MySQL存储引擎的功能介绍”,在日常操作中,相信很多人在MySQL存储引擎的功能介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL存储引擎的功能...
    99+
    2024-04-02
  • MySQL存储引擎的介绍及使用
    本篇内容介绍了“MySQL存储引擎的介绍及使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、MyISAM存储引擎缺点:不支持事务最小粒度...
    99+
    2023-06-20
  • MySQL存储引擎InnoDB与Myisam的优缺点
    mysql有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE...
    99+
    2022-12-29
    InnoDB与Myisam InnoDB与Myisam的优缺点 InnoDB与Myisam的区别
  • 如何实现MySQL底层优化:存储引擎的选择与性能对比
    MySQL 是一种强大的开源关系型数据库,可用于各种规模的应用程序。MySQL 支持多种不同的存储引擎,如 MyISAM、InnoDB、Memory、CSV 等,不同的引擎具有不同的功能和性能特点。在进行 MySQL 底层优化时,存储引擎的...
    99+
    2023-11-09
    优化 存储引擎 编程关键词:mySQL
  • 什么是存储引擎以及如何查看MySQL安装支持的存储引擎列表?
    它可以被定义为数据库管理系统(DBMS)用来处理不同的SQL操作(如创建、读取、更新和删除数据库中的数据)的软件组件。换句话说,它被DBMS用来管理数据库中的信息。最常用的存储引擎是InnoDB,它也是MySQL5.5及更高版本的默认存储引...
    99+
    2023-10-22
  • mysql中MyISAM存储引擎的特性是什么
    这篇文章将为大家详细讲解有关mysql中MyISAM存储引擎的特性是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、加锁和并发将整个表加锁到特定行上。对已读的表在读时加共享锁,在写时加排它锁。支持并...
    99+
    2023-06-15
  • MySql优化之体系结构及存储引擎的示例分析
    这篇文章给大家分享的是有关MySql优化之体系结构及存储引擎的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、MySQL结构体系总体上, 我们可以把 MySQL 分成三...
    99+
    2024-04-02
  • 面试官问我Mysql的存储引擎了解多少
    目录一、MySQL体系结构二、存储引擎简介三、存储引擎的使用四、存储引擎特点1、InnoDB2、MyISAM3、MEMORY五、存储引擎选择总结文章部分来源于黑马Mysql视频教程当...
    99+
    2022-11-13
    mysql存储引擎是什么 mysql存储引擎层实现的功能 mysql默认的存储引擎
  • 关于MySQL的体系结构及存储引擎图解
    目录一、mysql的体系结构① 结构图② 各结构的功能二、存储引擎① 简介及支持② 建表时,指定引擎三、各存储引擎的特点InnoDBMyISAMMemory四、存储引擎的选择ACID一、MySQL的体系结构 ① 结构图 ...
    99+
    2023-05-23
    MySQL体系结构 MySQL存储引擎
  • MySQL存储引擎选择与优化的项目经验分享
    MySQL存储引擎选择与优化的项目经验分享在开发和管理MySQL数据库时,选择合适的存储引擎并进行相关的优化是至关重要的。存储引擎直接影响数据库的性能、可靠性和可扩展性。本文将分享我在项目中的MySQL存储引擎选择和优化的经验。一、存储引擎...
    99+
    2023-11-02
    查询优化 MyISAM等存储引擎。 优化:通过索引优化 避免全表扫描
  • 优化阿里云数据库MySQL性能从选择合适的存储引擎到定期维护
    在云计算时代,MySQL数据库已经成为许多企业不可或缺的一部分。然而,随着数据量的增加和业务需求的多样化,MySQL数据库的性能问题逐渐显现。本文将从选择合适的存储引擎、优化查询语句、合理设置参数、定期维护等方面,详细阐述如何优化阿里云数据...
    99+
    2023-11-12
    阿里 合适 性能
  • MySQL数据库的存储引擎以及常用命令有哪些
    这篇文章主要介绍了MySQL数据库的存储引擎以及常用命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  MySQL数据库的存储引擎有...
    99+
    2024-04-02
  • 阿里云服务器性能测试的优势和挑战
    阿里云服务器是目前市场上最受欢迎的云计算服务之一,它提供了强大的计算能力和稳定性,适用于各种应用场景。然而,在选择阿里云服务器之前,我们还需要对其进行性能测试,以确保其能够满足我们的需求。本文将探讨阿里云服务器做性能测试的优势和挑战。1....
    99+
    2024-01-14
    阿里 性能测试 优势
  • MySQL索引与事务和视图以及存储引擎MylSAM和lnnoDB是怎样的
    本篇文章给大家分享的是有关MySQL索引与事务,视图及存储引擎MylSAM和lnnoDB,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MySQ...
    99+
    2024-04-02
  • PHP开发缓存的性能测试与优化指南
    PHP开发缓存的性能测试与优化指南一、引言随着互联网的快速发展,Web应用程序的性能对于用户体验和客户满意度变得越来越重要。在PHP开发中,缓存技术被广泛应用于提高应用程序的性能和响应速度。然而,如何有效地测试和优化缓存的性能是一个关键问题...
    99+
    2023-11-07
    缓存 性能优化 PHP开发
  • MySQL SSL 连接的优化策略与性能测试
    MySQL SSL 连接的优化策略与性能测试摘要:随着数据安全性的重视,越来越多的应用程序使用SSL来加密与数据库的通信。然而,使用SSL加密连接可能会对MySQL的性能产生一定的影响。本文将介绍一些优化策略,帮助提高MySQL SSL连接...
    99+
    2023-10-22
    性能测试 优化策略 SSL连接
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作