MySQL常见问题与企业级解决方案

1. 表的主键用数字还是UUID?

分布式架构,意味着需要多个实例中保持一个表的主键的唯一性。这个时候普通的单表自增ID主键就不太合适,因为多个mysql实例上会遇到主键全局唯一性问题。

InnoDB中的主键是聚簇索引。如果主键是自增的,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。如果不是自增主键,由于UUID的无序性,那么可能会在中间插入,就会引发页的分裂,产生很多表碎片和造成巨大的IO压力,而且由于索引和数据存储在一起,字符串做主键会造成存储空间增大一倍。

图片来源于《高性能MySQL》: 其中默认后缀为使用自增ID,表名带uuid的就是用uuid作为主键,测试了插入100w行和300w行的性能。

2. 如何在线修改表结构?

3. 谈谈订单号和流水号的关系?

4. 逻辑删除还是物理删除?

5. 千万记录,如何快速商品分页?

6. 读多写少和读多写多?

7. 删改数据如何避免锁表?

0 人推荐

声明:本文原创发布于加藤非博客,转载请注明出处:加藤非博客 jiatengfei.com 。如有侵权,请联系本站删除。

加藤非博客
请先登录再发表评论
  • 最新评论

  • 总共0条评论