首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
高性能可扩展mysql 笔记(一)数据库表、索引、SQL语句设计规范
】的更多相关文章
MySQL数据库-表操作-SQL语句(一)
1. 数据库操作与存储引擎 1.1 数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种: ①系统数据库(系统自带的数据库):不能修改,不能删除 information_schema:存储数据库对象信息,如:用户表信息,列信息,权限,字符,分区等信息. performance_schema:存储数据库服务器性能参数信息. mysql:存储数据库用户权限信息. test: 任何用户都可以…
高性能可扩展mysql 笔记(一)数据库表、索引、SQL语句设计规范
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 项目说明:该笔记的背景为电商平台项目,电商项目由于其高并发.多线程.高耗能等特性,在众多的项目类型中涉及的技术面最广,故以此为例作为案例: 项目说明: 主要功能模块: 对于一个项目的立项,从需求分析到技术栈的决定,其中的业务执行都离不开持久层中对数据库的操作,数据库的库.表设计等规范对项目的高效.可用性都具有很大的影响. 以下:对数据库的相关规范进行分析及说明: 数据库设计规范包括: 数据库命…
高性能可扩展mysql 笔记(三)Hash分区、RANGE分区、LIST分区
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.MySQL分区表操作 1.定义:数据库表分区是数据库基本设计规范之一,分区表在物理上表现为多个文件,在逻辑上表现为一个表: 2.表分区的弊端: 要谨慎选择分区键,错误的操作可能导致跨分区查询效率降低. 建议 采用物理分表的方式管理大数据. 3.确认MySQL服务器是否支持分区表 使用 SHOW PLUGINS:在mysql命令行查看是否具有分区表的功能: 查询结果中的"partition …
MySQL数据库-表操作-SQL语句(二)
1. MySQL多表查询 1.1 外键约束 为了消除多张表查询出现的笛卡尔积的现象,MySQL在建表并进行多表之间的关键查询可以使用外键关联查询. 外键:从表1(sub)的某列引用(ref)另外一个表2(main)的某列的值,把表1的这列叫做表2这列的外键. 1.2 外键的设置使用 比如上述最简单的员工(employee)和部门表(department),设置外键dept_id与id相关联. 步骤如下: ①在多方表中设置fk外键,使用外键dept_id关联一方表中的主键id,并选择好参考表: ②…
创建数据库表的SQL语句
创建表.视图.索引的sql语句如下: CREAT TABLE (列名,数据类型,约束) create view(创建视图) create index (创建索引) 1.primary key(主键) 2.unique (唯一性) 3.foreign key references 表名(列名) 4.check(约束表达式) 一般unique 要和not null连着使用…
高性能可扩展mysql 笔记(六) SQL执行计划及分页查询优化、分区键统计
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 常见业务处理 一.使用数据库处理常见业务: 案例: 如何对评论进行分页展示 使用 EXPLAIN 获得sql的执行计划 EXPLAIN SELECT customer_id,title,content from `product_comment` where audit_status = 1 and product_id = 199726 LIMIT 0,5; SELECT UPDATE INS…
高性能可扩展mysql 笔记(四)项目分区表演示
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 登录日志的分区 如何为Customer_login_log表分区? 从以下两个业务场景入手: 用户每次登陆都会记录customer_login_log入职 用户登录日志保存一年,一年后可以删除 1.登录日志表的分区类型及分区键确定: 分区类型: 使用RANGE分区 以login_time作为分区键 2.创建分区表: CREATE TABLE `crn`.`customer_login_log`( cu…
高性能可扩展mysql 笔记(五)商品实体、订单实体、DB规划
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.商品模块 商品实体信息所存储的表包括: 品牌信息表: create table `brand_info`( brand_id SMALLINT UNSIGNED auto_increment not null comment '品牌', brand_name varchar(50) not null comment '品牌名称', telephone varchar(50) not null…
高性能可扩展mysql 笔记(二)用户模型设计、用户实体表结构设计、设计范式
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.用户模型设计 电商羡慕中用户模型的设计涉及以下几个部分: 以电商平台京东的登录.注册页面作为例: 用户的基本模块涉及用户的账户名.密码.以及手机号码.所在地等信息. 由个人后台信息截图可知,用户的实体信息其实很多,不仅仅是当前页面所看到的,如下图: 二.用户实体属性的CRUD操作的问题分析 1.当我们确定了需要保存用户的属性后,就需要考虑怎么将属性存到表中了?同时还要考虑保存数据时…
MySQL千万级多表关联SQL语句调优
本文不涉及复杂的底层数据结构,通过explain解释SQL,并根据可能出现的情况,来做具体的优化. 需要优化的查询:使用explain 出现了Using temporary: 有分页时出现了Using filesort则表示使用不了索引,需要根据下面的技巧来调整语句 rows过多,或者几乎是全表的记录数: key 是 (NULL): possible_keys 出现过多(待选)索引. 1.使用explain语法,对SQL进行解释,根据其结…