数据库设计那些事——第4章 维护优化
4-1 数据库维护和优化要做什么
- 维护数据字典
- 维护索引
- 维护表结构
- 在适当的时候对表进行水平拆分或垂直拆分
4-2 如何维护数据字典
- 使用第三方工具对数据字典进行维护
- 利用数据库本身的备注字段来维护数据字典。以MySQL为例
CREATE TABLE customer(
cust_id INT AUTO_INCREMENT NOT NULL COMMENT '自增ID', cust_name VARCHAR(10) NOT NULL COMMENT '客户姓名', PRIMARY KEY(cust_id) ) COMMENT ''客户表' - 导出数据字典
SELECT TABLE_CATALOG, TABLE_SCHEMA as 数据库名, TABLE_NAME as 表名, COLUMN_NAME as 字段名, ORDINAL_POSITION as 字段位置, COLUMN_DEFAULT as 字段默认值, IS_NULLABLE 是否允许空值, DATA_TYPE as 数据类型, CHARACTER_MAXIMUM_LENGTH as 以字符为单位的最大长度, CHARACTER_OCTET_LENGTH as 以字节为单位的最大长度, NUMERIC_PRECISION as 数值类型的长度, NUMERIC_SCALE as 小数点精度, DATETIME_PRECISION as 回的日期时间值的精度, CHARACTER_SET_NAME as 编码方式, COLLATION_NAME as 校对集, COLUMN_TYPE as 字段类型, COLUMN_KEY as 键, EXTRA as 额外的信息例如自动递增在这里显示, PRIVILEGES as 权限, COLUMN_COMMENT as 字段注释, GENERATION_EXPRESSION FROM information_schema. COLUMNS WHERE TABLE_SCHEMA = 'Testplatform'
4-3 数据库如何维护索引
如何选择合适的列建立索引?
- 出现在WHERE从句,GOURP BY从句,ORDER BY从句的列
- 可选择性高的列要放到索引的前面
- 索引中不要包括太长的数据类型
注意事项 - 索引并不是越多越好,过多的索引不但会降低写效率而且会降低读的效率
- 定期维护索引碎片
- 在SQL语句中不要使用强制索引关键字
4-4 数据库中适合的操作
如何维护表结构
注意事项
- 使用在线变更表结构的工具
MySQL5.5之前可以使用pt-online-schema-change
MySQL5.6之后本身支持在线表结构的变更 - 同时对数据字典进行维护
- 控制表的宽度和大小
数据库中适合的操作
- 批量操作 VS 逐条操作
- 禁止使用Select * 这样的查询
- 控制使用用户自定义函数
- 不要使用数据库中的全文索引
4-5 数据库垂直和水平拆分
表的垂直拆分

表的水平拆分



浙公网安备 33010602011771号