zoukankan      html  css  js  c++  java
  • MySql优化方案

    mysql优化方案总结

    u       Mysql数据库的优化技术

    mysql优化时一个综合性的技术,主要包括

    a: 表的设计合理化(符合3NF)

    b: 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]

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

    d: 读写[: update/delete/add]分离

    e: 存储过程 [模块化编程,可以提高速度]

    f: mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ]

    g: mysql服务器硬件升级

    h: 定时的去清除不需要的数据,定时进行碎片整理(MyISAM)

    g:mysql语句本身的优化

     

    下面是一些mysql基本使用命令。

    一:mysql查看基本命令

    (1):查看当前有哪些数据库

      show databases;

    (2):使用mysql数据库

     use test

    (3):查看当前数据库下的表

      show tables;

    (4):查看上述grade表建立的命令

    show  create table grade;

    (5):查看student表的结构

    desc student;

    (6):查看数据库支持的存储引擎

    show engines; 

    show engines G ;      //  G让结果更美观

    (7):查看默认存储引擎

    show variables like 'storage_engine';

     

    二:mysql的修改表

    (1)将grade表的course字段的数据类型修改为varchar(20)

     

    alter table grade modify course varchar(20);

     

    (2)将s_num字段的位置改到course前面

     

    alter table grade modify  s_num  int(10) after id;

     

    (3)将grade字段改名为score

     

    alter table grade change grade score varchar(10);

     

    (4)删除grade的外键约束

    alter table grade drop foreign key grade_fk;

     

    (5)将grade的存储引擎修改为INnoDB

     

    alter grade engine=INnoDB

     

    (6)将student的address字段删除

    alter table student drop address;

     

    (7)在student表中增加名位phone的字段

    alter table student add phone int (10);

     

    (8)将grade的表名修改为gradeinfo

    lter table grade rename gradeinfo;

     

    (9):删除student表

    drop table student;         //由于先前已经删除外键,所以才能删除父表studnet

     

    Mysql优化查询工具:工具之三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置

    创建索引:create INDEX idx_typeid on book1(typeid);

    MySQL在建立索引时,对不同的数据表有不同的细节:MyISAM数据表,数据行将被保存在数据文件里,其索引值将被保存在索引文件里,而BDB处理程序把同一个BDB数据表的数据值和索引值保存在同一个文件里,InnoDB处理程序则是把所有InnoDB数据表的数据值和索引值都保存在同一个表空间里。

    建立索引也要考虑它的缺点。首先,索引需要消耗磁盘空间(现在磁盘已经很便宜了),索引越多,消耗的空间也就有多。对于MyISAM数据表,过多的索引会使索引文件优先与数据文件达到尺寸上限。对于BDB数据表,因为它把数据值和索引值都保存在同一个文件里,所以增加索引必然会使他更快地达到BDB数据文件的尺寸上限。InnoDB数据表共同分享着InnoDB表空间里的存储空间,所以增加索引必然会加快InnoDB表空间的消耗速度。不过,只要还能增加磁盘空间,就能通过给InnoDB表空间增加组件的办法扩充之

    其次,索引过多,会减慢被索引的数据列上的插入、删除和修改操作的速度。因为在写入记录时,MySQL还必须修改与之有关的所有索引

    设计表时的优化

    可以将相关表的字段的长度设置的一样,查询时可以减少查询时匹配的次数

     

    MySql优化方案总结:http://www.cnblogs.com/xiaoblog/p/4209930.html

    数据库优化以及一些常见的数据库应用函数和方法:http://www.cnblogs.com/yydcdut/p/3888308.html

  • 相关阅读:
    Python find() 方法
    enumerate函数
    【Unity】项目工程源码
    【Unity】UGUI聊天消息气泡 随文本内容自适应
    Unity读Excel 输出PC端(Windows)后不能读取的问题
    【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其三)
    【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其二)
    【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其一)
    Unity输出PC端(Windows) 拖拽文件到app中
    Android Studio报错Error:Failed to open zip file. Gradle's dependency cache may be corrupt
  • 原文地址:https://www.cnblogs.com/xiaoyaodijun/p/4242411.html
Copyright © 2011-2022 走看看