MySQL如何设计及优化

     1.视图和索引

  • 一张虚拟表,运行过程中动态从基表中获取数据。

               视图没有真正物理存在(文件),本质从表中获取数据并展示。

               视图的操作和表的操作一致,一般视图只做查询。

create view emp_ten

 as

 select * from emp1 where deptno=10 with check option;



with check option:限制视图无法修改创建视图的条件字段值。



销毁视图

Drop view emp_ten;
  • 视图优点:
  • 简化开发。
  • 安全性(权限)。
  • 定制化数据。
  • 什么是索引:

               提升查询效率创建的一组数据结构(表)。

               索引经常使用BTREE索引(B+树)。

               索引选择:

                      记录数较多。

                      增删改操作不能较多。

                       高基数列。

               不能添加索引:

                       不要添加过多索引。

创建索引:

Create index index_name on tname(col);

修改索引:

Alter table stu add index(col);

组合索引:

Create index index_name on tname(col,col2);

唯一索引:

Create unique index index_name on tname(col);

(主键 unique  外键)



删除索引:

Drop index index_name on tname;

 

    2.数据库的设计

  • 三大范式:

               1NF:  域必须是原子性。不可分割。

               2NF:  非主键字段与主键直接相关,不能与主键的部分相关(联合主键)。

               3NF:  非主键字段必须与主键直接相关,非主键字段之间不要直接关联。

  • 数据库设计步骤
  • Er图绘制(powerdesigner)
  • 实体关系
  • 一对一关系:

              外键添加唯一约束

              主键做外键

  • 一对多(多对一)   多方
  • 多对多  student 和 course

添加关系维护表

添加联合主键

 

 

  3.数据库的优化

       避免使用*

       索引失效状况

       索引列使用not/!=/<>/null/not null,索引失效

       索引列进行模糊查询(包含),使用函数索引失效

       索引列进行计算导致索引失效

       Union代替or

       Exists和in选择

  4.数据库备份和还原

       Mysqldump -uroot -proot dbname > d:/t.sql;  备份

       mysql -uroot -p < C:\backup.sql   还原

       source c:/backup.sql

猜你喜欢

转载自blog.csdn.net/qq_42246689/article/details/83010925