草庐IT

MySQL 存储引擎决策

coder 2023-10-14 原文

我是来自荷兰的网页设计师。我对从头开始构建 Web 应用程序有点陌生,我一直使用 CMS 并对其进行自定义。

我正在用 php/mysql 建立一个拍卖网站,已经完成了。最近看了一些关于存储引擎的文章。

有几个问题困扰了我一段时间:


什么样的存储引擎最适合我的网站,我用的是myIsam、innodb等

我正在 build 的网站是一个拍卖网站,它必须每秒处理几个读写!!它必须检查拍卖是否开始、结束、暂停、当前价格等。

我知道不是我数据库中的所有表都会被访问,这些只有 3 个。它们目前都是 myIsam。这个好吗?我应该全部改变吗?一个都不改?我真的不知道该怎么办。 如果我改变它们,这会极大地影响我的网站吗?最终,这些变化是容易应用还是难以应用。


我的另一个问题是关于缓存系统。

我也阅读了一些关于它们的内容,但我不知道它们是否适用于我拥有的那种网站。我从数据库中获取的数据变化很大。缓存它们对我来说方便吗? 例如,可以缓存拍卖,因为并非所有项目都会更改。但拍卖不会永远存在,几个小时后它就消失了。

我看不出缓存系统如何适用于此,或者我是不是看错了。再者,如果这个系统适用于我,这个改变是否需要付出很大的努力,这个努力是否会带来巨大的改变。


这些是我的所有问题,我想它们真的很笼统,我希望有人能帮助我解决这些问题,我将不胜感激。

问候

最佳答案

What sort of storage engine is best suited for my website, do i use myIsam, innodb, etc.

一般来说,对于任何任务默认为 InnoDB,因为它的 ACID 合规性和行级锁定。考虑仅在 (a) 全文搜索和 (b) InnoDB 下性能不够好的特定情况下使用 MyISAM(这种情况很少见,但某些类型的数据可以从 MyISAM 的配置文件中受益)。

The website i am building is an auction website,

像拍卖这样的功能确实需要一个一致的交易数据库来支持它,因为你在谈论人们的钱。 MyISAM 无法提供。您的站点需要为所有非原子交互使用事务,因此不可能例如。两个人在同一时间出价时赢得同一场拍卖。

it has to deal with several read and writes EVERY SECOND!!

这不是一个大数目。然而,由于 MyISAM 不幸的表级锁定,InnoDB 通常在对大表的写入偏向访问方面表现更好。

I read a few about them too but i don't know if they apply to the sort of website i have.

不要着急。一些网络作者似乎认为任何网站都需要内存缓存才能获得良好的性能,但事实并非如此。您应用的任何缓存解决方案都会增加处理更新时间和现已过时信息的复杂性和潜在故障点。

因此,除非真正需要,否则不要诉诸缓存。如果您的常见前端页面习惯性地对数据集执行复杂、缓慢的查询,那么是的,为此设置某种缓存,无论是在数据库本身还是外部解决方案(如 memcache)中,都可以提高速度。但实际上,与增加缓存的复杂性和不一致性相比,更改架构和添加索引以使查询成本更低可能会更好。

在一个每秒只执行“几个”操作的网站上,您将不需要它。

关于MySQL 存储引擎决策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1706632/

有关MySQL 存储引擎决策的更多相关文章

  1. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  2. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

    我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

  3. ruby-on-rails - Rails 中的推荐引擎 - 2

    我想为我的Rails网络应用程序提供推荐功能。特别是,我想向新注册的用户推荐他可能想要关注的其他用户。Rails中是否有用于此目的的引擎/gem?如果没有,我应该从哪里开始构建它?谢谢。 最佳答案 有Coletivogemhttps://github.com/diogenes/coletivo我试了一下。在MySQL上运行。Neo4jhttp://neo4j.org真的很容易实现一个“跟随谁”。事实上,大多数展示其能力的样本都涉及“跟随谁”。快速提示-只有在JRuby上运行时,Neo4j.rb才会很酷。如果不是-使用Neograph

  4. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  5. ruby - Rack:如何将 URL 存储为变量? - 2

    我正在编写一个简单的静态Rack应用程序。查看下面的config.ru代码:useRack::Static,:urls=>["/elements","/img","/pages","/users","/css","/js"],:root=>"archive"map'/'dorunProc.new{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=6400'},File.open('archive/splash.html',File::RDONLY)]}endmap'/pages/search.

  6. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  7. UE4 源码阅读:从引擎启动到Receive Begin Play - 2

    一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame

  8. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  9. ruby-on-rails - 为什么在 Rails 5.1.1 中删除了 session 存储初始化程序 - 2

    我去了这个website查看Rails5.0.0和Rails5.1.1之间的区别为什么5.1.1不再包含:config/initializers/session_store.rb?谢谢 最佳答案 这是删除它的提交:Setupdefaultsessionstoreinternally,nolongerthroughanapplicationinitializer总而言之,新应用没有该初始化器,session存储默认设置为cookie存储。即与在该初始值设定项的生成版本中指定的值相同。 关于

  10. ruby-on-rails - 无法安装 mysql2 0.3.14 gem - 2

    我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby​​目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin

随机推荐