程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySql優化方案,mysql優化

MySql優化方案,mysql優化

編輯:MySQL綜合教程

MySql優化方案,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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved