MySQL海量數據處理及優化

什麼是mysqlmysql

MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關係型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件。sql

爲何是mysql
MySQL是一種關係數據庫管理系統,關係數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。
MySQL所使用的 SQL 語言是用於訪問數據庫的最經常使用標準化語言。MySQL 軟件採用了雙受權政策,分爲社區版和商業版,因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,通常中小型網站的開發都選擇 MySQL 做爲網站數據庫。數據庫

mysql的用法ide

1 默認約束函數

create table emp (id int default 12)大數據

2 設置自增優化

create table emp(id int identity(1,1)網站

3 查看錶定義code

desc emp索引

4 修改代表

alter table emp rename emp2

4 修改字段的數據類型

alter table emp rename emp2

4 修改代表

alter table emp2 modify id biginf

5 修改代表

alter table emp rename emp2

6 修改字段名

alter table emp2 change id iid biginf

7 添加字段

alter table emp2 add name navrchar(200) null

8 刪除字段

alter table emp2 drop name

9 刪除約束

刪除外建約束
    alter table emp2 drop foreign key fk_emp_dept
    
  刪除主鍵約束
     alter table emp2 drop primary key pk_emp_dept

10 刪除表

drop table if exists emp1,emp2

11 模版建表

複製表結構

   create table xx like xxx
   
複製表結構和數據解構

   create table xx as select * from xx

存儲過程

delimiter // 
CREATE PROCEDURE pro_c ()
BEGIN
    SELECT
        *
    FROM
        USER ;
    END//
delimiter ;

CALL pro_c ();

其中 delimiter // 的意思是將;結束符設置爲 // 因此 end 後的//的意思即爲結束的意思,最後使用delimiter ; 轉化//爲;做爲結束符

你所不值的mysql的大數據用法用法

DROP TABLE
IF EXISTS bi_user_copy;

CREATE TEMPORARY TABLE bi_cartelo_ali_daily_zp_copy AS SELECT
    *
FROM
    bi_user
LIMIT 0,
 100;

SELECT
    *
FROM
    bi_cartelo_ali_daily_zp_copy;
    
    其中tmpoprary的做用就是建立虛表,經過虛表這個中間表,就能夠對大批量數據進行分批處理,最後將處理好的數據進行彙總,有效的解決了從大數據中取出本身想要的數據

數據庫優化

1 模糊查詢

在一個複雜的查詢裏面最好避免使用LIKE等查詢,這樣會致使索引沒法使用

2 索引如下狀況

(1)避免在索引字段上使用not,<>,!=
  
  (2) 避免在索引上使用IS NULL 和IS NOT NULL
  
 (3)避免在索引列上出現數據轉型及函數
 
 (4) 避免創建索引的列中使用空值
 
3 複雜語句

   對於大批量數據儘可能使用分頁查詢,將語句拆分,數據先清洗處理後在查詢等
   
4 合理的使用語法糖

  (1)可使用UNION ALL的地方儘可能不要使用UNION,UNION🈶去重的做用,可是速度很慢
  
  (2)在where語句中避免使用邏輯運算,in,not,or 或having等語法糖
  
  (3)select 語句中儘可能不要使用*語法糖
  
  
以上,謝謝
相關文章
相關標籤/搜索