ran*_*omx 5 mysql innodb nosql
周围有一些炒作:HandlerSocket
似乎更快,nosql 访问 MySQL 数据变得越来越可取。Percona Server 现在内置了 HandlerSocket。
我的问题是,绕过 MySQL 的 libmysqld 层以利用 HandlerSocket 插件的生产用例是什么?您是否将其部署到生产环境中?
我觉得有趣的是,Percona 说 HandlerSocket 并不那么流行。事实上,当写入操作干扰开放的 HANDLER 结构时,它会存在错误。
我还发现令人震惊的是,HandlerSocket(当时称为 HANDLER)的概念可以追溯到 MyISAM 和 InnoDB 的 MySQL 4.0.3。当时只有读取的规定。
HANDLER 的基本用法也在《MySQL Reference Manual : Documentation From the Source》一书中,第 6.4.2 节第 512,513 页(我旁边就有这本书)
问题仍然是:HandlerSocket 的用途是什么???
想象一下 Facebook 工程师试图读取流量大的 MyISAM 表中的值(顺便说一句,Facebook 讨厌 MyISAM)。我们都知道MyISAM 对执行的任何DML 或SELECT 执行全表锁定。您想要做的是调整该表中特定行中的单个列(通过 SQL),但您需要在 SELECT 查询锁定数据之前立即知道该数据。您是否想费力地通过大量的数据库连接来访问您需要的一个表,只是为了更改单个值?您可以使用 HANDLER 语法绕过这些等待的 SELECT,而无需锁定。您可以对 InnoDB 表执行相同的操作,并绕过 MVCC(多版本并发控制)和行级锁。
只有在高流量、高读取的环境中,您才需要冒这样的风险,尤其是在立即查找数据是最高优先级的情况下。
如果你真的想知道哪些生产环境实际使用它,我会直接在博客中写 Percona 来寻求答案。由于我从未见过使用 HANDLER(今天的 HandlerSocket)的编码示例除了读取之外还执行其他操作,因此它只能用于 Facebook 等大型 MySQL 安装的目的。
警告
当您查看打开表、打开索引和遍历行的语法时,您会发现它类似于我在 1980 年代末编写的一些编程语言。
我指的是DBase、Clipper、FoxPro和Visual FoxPro等语言。DBase 是所有这些产品的鼻祖。现在,在您开始大笑并从椅子上摔下来之前,DBASE 仍然存在,VISUAL FOXPRO 也同样存在!我个人认识一个人仍在使用 FoxPro 和 Visual FoxPro 进行编码!好吧,现在你可以从椅子上摔下来,以胎儿的姿势哭泣。还是不相信我???一些示例代码怎么样?
对类似于象形文字的旧数据处理编程语言的咆哮已经够多了!
归档时间: |
|
查看次数: |
1204 次 |
最近记录: |