我是数据库的新手,所以我拥有:
经过一些便宜的选择查询后,我在这个巨大的表格中插入了查询和其他选择。
问题:每次插入都会重新编制索引,它可能会锁定表格或行或者什么?当多个请求同时发生时,它将如何影响高流量?
答案 0 :(得分:0)
索引以递增方式更新。没有必要考虑这个过程;它发生在'背景'。索引始终是最新的;也就是说,SELECT
将能够像旧行一样轻松地找到新插入的行。
如果您每秒获得超过100 INSERTs
,请查看详细信息。 (SHOW CREATE TABLE
,实际INSERT
等)
同时,千点查询应该没问题。 (这是索引的单行的SELECT
。)
流量高......"廉价查询"通常很快,很少有两个同时运行。即使每秒一千个查询也可能很少同时运行多个查询。长时间运行的查询是另一回事。
几十个主动正在运行的连接很重。交通。那时,让我们看看运行时间最长的查询,看看我们是否可以加快它们的速度。
取决于RAM大小和innodb_buffer_pool_size
,并且根据访问模式,您的大表可能或可能不受I / O限制。 UUID / GUID索引因导致I / O迟缓而臭名昭着。 A" log"或者"新闻",你大部分都在看"最近"行将具有"引用的位置"这导致非常有效的缓存 - 因此表格大小与RAM无关。