MySQL海量数据处理及优化

  1. 云栖社区>
  2. 博客>
  3. 正文

MySQL海量数据处理及优化

java架构 2018-06-06 16:43:46 浏览649
展开阅读全文

什么是mysql

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

为什么是mysql
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

mysql的用法

1 默认约束

create table emp (id int default 12)

2 设置自增

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

3 查看表定义

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的地方尽量不要使用UNIONUNION            

网友评论

登录后评论
0/500
评论
java架构
+ 关注