您的位置:首页 > 数据库 > MySQL

mysql优化小结

2013-01-12 00:26 169 查看
a: 表的设计合理

b: 添加适当的索引

c: 分表技术 (水平分表, 垂直分表)

d: 读写分离

e: 存储过程(已编译的sql语句,执行效率高)

f: mysql配置优化(通常会把mysql_conncetion的值设为1000左右)

g: mysql硬件升级

h: 定期对mysql数据库进行碎片整理(optimize table 表名);

数据库设计三范式

1NF:表的列具有原子性,即列信息不可再分

2NF:
表中的记录具有唯一性

3NF:
表中不要有冗余信息,比如可以通过其它字段推出来的信息就没必要单独设计一个字段存放

(但有时候,实际情况需要我们适当的反三FN)

定位慢查询

show
sataus like 'uptime'//查看mysql服务启动时间

show
status like 'com_select'//查看select语句查询次数

'com_update'

''com_delete'

'com_insert'

show
[session|global] status,查看的数据是本次会话的还是所有记录

show
status like 'connections' 查看当前mysql客户连接数

show
status like 'slow_queries' 显示慢查询

show
variables like 'long_query_time' 多少秒才认为是慢查询

set
long_query_time = 1 认为超过一秒即为慢查询.

索引:

查询:

show
index from 表名

show
keys form 表名

添加:

alter
table 表名 add primary
key(表的列名) 添加主键索引

alter
table 表名 add unique
key(表的列名) 添加唯一索引

alter
table 表名 add key(表的列名)
添加普通索引

在使用索引查询中需要特别注意的事情

如果where条件语句后有or关键字,那么两个字段都必须是有索引,否则它们两个都不会使用索引。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: