星空

人生不仅有眼前的苟且,还有诗和远方.

0%

1、Elasticsearch的功能

(1)分布式的搜索引擎和数据分析引擎

搜索:百度,网站的站内搜索,IT系统的检索
数据分析:电商网站,最近7天牙膏这种商品销量排名前10的商家有哪些;新闻网站,最近1个月访问量排名前3的新闻版块是哪些分布式,搜索,数据分析

(2)全文检索,结构化检索,数据分析

阅读全文 »

命名规范

Ø库名、表名、字段名,使用小写字母

Ø库名、表名、字段名,不要超过30个字符

Ø库名、表名、字段名,尽量见名知意,使用下划线分割

阅读全文 »

金额字段类型选择

1.decimal

decimal(M,N) 0<M<65,0<N<30,且N<M,M和N的长度直接影响存储空间

默认情况,表示金额的情况,decimal(16,2),范围是99,999,999,999,999.99 to -99,999,999,999,999.99

阅读全文 »

CREATE DATABASE标准SQL

1
2
3
4
5

SET NAMES UTF8;

CREATE DATABASE example_db DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; #collate建议使用utf8-bin

CREATE TABLE标准SQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

SET NAMES UTF8;

DROP TABLE IF EXISTS example_db.example;

CREATE TABLE example_db.example( #常规字段为 int,bigint,varchar,text,tinyint

`id` int(10) UNSIGNED NOT NULL COMMENT 'comment' AUTO_INCREMENT,

`account_id` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'comment',

`telephone` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'comment',

`card_amount` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'comment', #涉及到金额的,请使用bigint,单位为分

`name` varchar(5) NOT NULL DEFAULT '' COMMENT 'comment', #varchar字段,建议使用长度5,30,50,100,255,500,1000,5000

`desc` varchar(30) NOT NULL DEFAULT '' COMMENT 'comment',

`info` varchar(50) NOT NULL DEFAULT '' COMMENT 'comment',

`addr` varchar(100) NOT NULL DEFAULT '' COMMENT 'comment',

`json` text NOT NULL COMMENT 'comment', #存储json格式字段

`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT 'comment', #1为正常数据,0为删除数据

`create_time` datetime default now() comment '创建时间',

`update_time` datetime default now() comment '更新时间',

PRIMARY KEY `idx_id` (`id`), #主键,请合理选择

KEY `idx_user_name` (`name`) #请加必要的业务相关索引,命名规则为idx_field1_field2

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT 'comment';

阅读全文 »

1.冷热数据分离,不要将所有数据全部都放到Redis中

虽然Redis支持持久化,但是Redis的数据存储全部都是在内存中的,成本昂贵。建议根据业务只将高频热数据存储到Redis中【QPS大于5000】,对于低频冷数据可以使用MySQL/ElasticSearch/MongoDB等基于磁盘的存储方式,不仅节省内存成本,而且数据量小在操作时速度更快、效率更高!

2.不同的业务数据要分开存储

不要将不相关的业务数据都放到一个Redis实例中,建议新业务申请新的单独实例。因为Redis为单线程处理,独立存储会减少不同业务相互操作的影响,提高请求响应速度;同时也避免单个实例内存数据量膨胀过大,在出现异常情况时可以更快恢复服务!

阅读全文 »