关于为可伸缩性设计数据库,我应该知道些什么?

时间:2011-05-12 16:59:37

标签: mysql sql database performance database-design

除了在经常检索的列上创建索引,并且执行SELECT col1, col2, col3 FROM tbl而不是SELECT * FROM table之外,我还应该知道如何设计数据库以实现可伸缩性/快速性能?

4 个答案:

答案 0 :(得分:3)

有很多东西,你需要知道,小样本

何时使用分区
使表格尽可能窄,以便每页可以容纳更多行 如何最大限度地减少锁定和阻塞
分片
磁盘IO子系统(raid 5或10,SAN或HDD)
进行查询SARGable以便使用索引 解释计划
使用正确的数据类型
搜索和扫描之间的差异

答案 1 :(得分:2)

您可能会发现此主题很有趣:

Database development mistakes made by application developers

答案 2 :(得分:1)

你应该知道:

  1. 订单如何影响JOIN。
  2. 如何使用EXPLAIN PLAN。
  3. 某些类型的WHERE子句如何不能使用索引和强制表扫描。

答案 3 :(得分:1)

  • 了解如何使用explain来了解MySQL处理查询的方式
  • 了解如何使用慢速查询记录
  • 考虑分区/分片
  • 考虑您正在使用的数据库引擎