码迷,mamicode.com
首页 > 数据库 > 详细

MySQL性能优化(一)-- 存储引擎和三范式

时间:2017-03-27 00:47:08      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:com   基础   范式   配置文件   笔记   统计   my.ini   全文索引   rod   

一、MySQL存储引擎

  技术分享

二、存储引擎如何选择

  • 是否支持事务
  • 检索和添加速度
  • 锁机制
  • 缓存
  • 是否支持全文索引
  • 是否支持外键

三、MyISAM和InnoDB对比

  技术分享

四、什么时候使用MyISAM和InnoDB

  MyISAM:读事务要求不高,以查询和插入为主,例如各种统计表。

  InnoDB:对事务要求高,保存的是重要的数据,例如交易数据,支付数据等,对用户重要的数据,建议使用InnoDB。

五、配置和数据文件

  1.配置文件默认位置

    Linux: /etc/my.cnf

    Windows: my.ini

  2.数据文件位置

   1) 查看数据文件位置的命令: show variables like ‘%datadir%‘ ;

   2) 数据文件格式:

      InnoDB:frm(存储的表结构)、ibd(存储的数据和索引)

      MyISAM:frm(存储的表结构)、MYD(存储的数据)、MYI(存储的索引)

六、数据库表设计

  1).范式概念

     1NF:列不可分。每一列都是不可分割的基本数据项

     2NF:1NF的基础上面,非主属性完全依赖于主关键字

     3NF:属性不依赖于其它非主属性 , 消除传递依赖

  2).1NF

   假设我们有一个学生表,字段包括:id,name,age,contact,如下:

id name age contact
1 张三 20 phone:053756666;QQ:100001
2 李四  19 phone:053757777;QQ:100002

   当我们需要根据QQ来查询学生的时候,就查询不出,所以以上的设计就不符合1NF。我们可以将contact字段拆分为phone和QQ:

id name age phone QQ
1 张三 20 053756666 100001
2 李四 19 053757777 100002

  3).2NF

   假设我们有一个订单表,字段包括:id,productId,price,num,productName,如下:

id productId price num productName
1 101 20 10 圆珠笔
1 102 18 20 笔记本

   订单中,一个订单会有多个商品、明细。

  未完成…………………………………………………………………………

MySQL性能优化(一)-- 存储引擎和三范式

标签:com   基础   范式   配置文件   笔记   统计   my.ini   全文索引   rod   

原文地址:http://www.cnblogs.com/xbq8080/p/6624728.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!