InnoDB 和 MyISAM中的Blob

通过实验发现,对于包含Blob字段的数据插入操作,MyISAM表在200万记录时仍能保持约1000/s的速度,而InnoDB表在20万记录时速度仅为130/s。若不含Blob字段,InnoDB表现尚可。
      最近在用的一直是Mysql的Innodb,昨天测试了一下包含Blob字段的数据的插入,真的是很惨不忍睹。在表中记录数小于2k的时候,速度还行,超过2k速度就下降,从470/s持续的下降,在表中有1w条记录的时候速度就只有240/s了。到5w的时候,就只有178/s了。到20w的时候,则是130/s。后来换成了Myisam,基本上在200w记录的时候还能够有1000/s的速度。Myisam不支持事务,速度快,这些都是很早就知道的。只是不知道会有这么大的差距。也不清楚是不是innodb的什么设置我没有设置正确。现在从性能上考虑,要采用MyISAM了。而不能保证事务的这个现实,需要在APP上进行处理了。这个差距真的是太惊人了。
     不过如果没有Blob等字段,只有简单类型的话,InnoDB还好了。性能还说的过去。并且关键的是不会因为表中的有一些数据而导致性能急剧下降。
单向双向V2G 环境下分布式电源与电动汽车充电站联合配置方法(Matlab代码实现)内容概要:本文介绍了在单向双向V2G(Vehicle-to-Grid)环境下,分布式电源与电动汽车充电站的联合配置方法,并提供了基于Matlab的代码实现。研究涵盖电力系统优化、可再生能源接入、电动汽车充放电调度、储能配置及微电网经济调度等多个关键技术领域,重点探讨了在不同电价机制需求响应策略下,如何通过智能优化算法实现充电站与分布式电源的协同规划与运行优化。文中还展示了多种应用场景,如有序充电调度、鲁棒优化模型、多目标优化算法(如NSGA-II、粒子群算法)在电力系统中的实际应用,体现了较强的工程实践价值技术综合性。; 适合人群:具备电力系统、新能源、智能优化算法等相关背景的科研人员、研究生及从事能源系统规划与优化的工程技术人员;熟悉Matlab/Simulink仿真工具者更佳。; 使用场景及目标:①用于科研项目中关于电动汽车与分布式电源协同配置的模型构建与仿真验证;②支持毕业论文、期刊投稿中的案例分析与算法对比;③指导实际电力系统中充电站布局与能源调度的优化设计。; 阅读建议:建议结合文中提供的Matlab代码与具体案例进行同步实践,重点关注优化模型的数学建模过程与算法实现细节,同时可参考文末网盘资源获取完整代码与数据集以提升学习效率。
MyISAMInnoDBMySQL数据库中常用的两种存储引擎,它们各自有不同的具体用途: ### MyISAM存储引擎的用途 - **适合以查询为主的场景**:MyISAM支持全文索引,数据查询效率较高;并且用一个变量保存了整个表的行数,执行 `select count(*) from table` 语句时,只需要读出该变量即可,速度很快。所以当数据表主要用来插入查询记录时,MyISAM引擎能提供较高的处理效率。例如在一些新闻资讯类网站,主要是大量的文章数据查询展示,使用MyISAM存储引擎可以提高查询性能 [^1][^2]。 - **对事务要求不高的场景**:MyISAM不支持事务,对于一些不需要事务安全(如提交、回滚恢复等ACID兼容能力)的业务场景,如一些简单的日志记录系统,只需要进行数据的插入查询,使用MyISAM存储引擎可以满足需求 [^2]。 ### InnoDB存储引擎的用途 - **需要事务支持的场景**:如果要提供提交、回滚恢复的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB是很好的选择。例如在电商系统中,涉及到订单、支付等操作,需要保证数据的一致性完整性,使用InnoDB存储引擎可以确保事务的正确执行 [^2]。 - **处理大数据量的场景**:当处理大数据量时,InnoDB兼顾CPU,以达到最大性能。它在主内存中维护缓冲池,高频率使用的数据将在内存中直接被处理,加速了处理进程;还可以压缩表相关的索引,在不影响性能可用性的情况下创建或删除索引。对于大型文本BLOB数据,使用动态行形式,存储布局更高效 [^4]。 - **需要外键约束的场景**:如果需要将数据插入不同的表中,可以设置外键加强数据的完整性。更新或者删除数据时,关联数据将会被自动更新或删除。例如在一个包含用户表订单表的系统中,订单表中的用户ID可以通过外键关联到用户表的主键,保证数据的一致性 [^4]。 ### 示例代码 以下是创建MyISAMInnoDB表的示例: ```sql -- 创建MyISAM表 CREATE TABLE `test_myisam` ( `id` int(11) NOT NULL AUTO_INCREMENT, `col1` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; -- 创建InnoDB表 CREATE TABLE `test_innodb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `col1` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值