Leo*_*ang 8 mysql sql indexing
我有一些有关MySQL索引的相关问题:
我的应用程序中有很多插入,我担心MySQL会在每次插入后重建索引。数据不必是实时的,因此我可以在插入特定数量的数据后(如有可能)更新索引。
MySQL可能已经尽其所能了。
对于InnoDB(应该是MySQL的默认存储引擎),它会立即插入,更新和删除更改主键或唯一键索引。但是他们从不重建整个索引,而是将新值添加到这些索引中(或从中取出值)。
对于非唯一索引,InnoDB执行更改缓冲。也就是说,它会将更改排入队列,稍后将在后台将其合并到索引中。它甚至可以合并更改,以便更有效地完成对索引的物理更新。
您无需执行任何操作即可启用此功能,因为默认情况下已启用该功能。MySQL 5.1确实仅更改的缓冲INSERT。MySQL 5.5和更高版本另外会更改UPDATE和的缓冲DELETE。
您可以根据需要禁用此功能(例如,如果使用SSD,那么避免随机I / O并不是很重要,并且可能要确保排队的更改不会累积)。通常,应保持启用该功能。
| 归档时间: |
|
| 查看次数: |
2810 次 |
| 最近记录: |