gpt4 book ai didi

MySQL 存储引擎决策

转载 作者:可可西里 更新时间:2023-11-01 07:47:06 24 4
gpt4 key购买 nike

我是来自荷兰的网页设计师。我对从头开始构建 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com