维护和优化要做什么
1:维护数据字典
2:维护索引
3:维护表结构
4:在适当的时候对表进行水平拆分或垂直拆分
一:如何维护数据字典
1:使用第三方工具对数据字典进行维护
2:利用数据库本身的备注字段来维护数据字典
以MySQL为例:
create table customer(
cust_id int auto_increment not null comment '自增ID',
cust_name varchar(10) not nunll comment '客户姓名',
primary key(cust_id)
)comment '客户表'
3:导出数据字典
SELECT
a.table_name,b.TABLE_COMMENT,a.COLUMN_NAME,
a.COLUMN_TYPE,a.COLUMN_COMMENTFROM
information_schema.COLUMNS a JOID information_schema.
TABLES b ON a.table_schema=b.table_schema AND
a.table_name=b.table_name
WHERE a.table_name='customer'
二:数据库如何维护索引
如何选择合适的列建立索引?
1:出现在where从句,group by从句,order by从句的列
2:可选择性高的列要放在索引的前面
3:索引中不要包括太长的数据类型
注意事项:
1:索引并不是越多越好,过多的索引不但会降低写效率,而且会降低读的效率
2:定期维护索引碎片
3:在SQL语句中不要使用强制索引关键字
三:如何维护表结构
注意事项
1:使用在线变更表结构的工具
MySQL5.5之前可以使用pt-online-schema-change,MySQL5.6之后本身支持在线表结构的变更
2:同时对数据字典进行维护
3:控制表的宽度和大小
数据库中适合的操作
1:批量操作VS逐条操作
2:禁止使用select *这样的查询
3:控制使用用户自定义函数
4:不要使用数据库中的全文索引
表的垂直拆分和水平拆分
表的垂直拆分:为了控制表的宽度可以进行表的垂直拆分。
1:经常一起查询的列放在一起
2:text,blob等大字段拆分出到附加表中
表的水平拆分:为了控制表的大小可以进行表的水平拆分
水平拆分常用方法之一,主键的hash key,取模