# v1.6.0 - 数据库优化

## 分库分表

```go
// 按user_id分表
func GetTableName(userID int64) string {
    return fmt.Sprintf("messages_%d", userID%16)
}

// 读写分离
func (d *DAO) Query(ctx context.Context, query string, args ...interface{}) {
    return d.readDB.QueryContext(ctx, query, args...)
}

func (d *DAO) Exec(ctx context.Context, query string, args ...interface{}) {
    return d.writeDB.ExecContext(ctx, query, args...)
}
```

## 索引优化

```sql
-- 复合索引
CREATE INDEX idx_chat_created ON messages(chat_id, created_at);

-- 覆盖索引
CREATE INDEX idx_user_status ON users(status) INCLUDE (id, username);
```
