1、 从订单表中查询最热商品问题
SQL : SELECT SPUID AS 商品 ,COUNT(*) AS 销量 FROM Order GROUP BY SUPID DESC LIMIT 0,1;
2、为什么字符集不选择utf8,排序规则不使用utf8_general_ci?
采用utf8编码的MySQL无法保存占位是4个字节的Emoji表情。为了使后端的项目,全面支持客户端输入的Emoji表情,升级编码为utf8mb4是最佳解决方案。对于JDBC连接串设置了characterEncoding为utf8或者做了上述配置仍旧无法正常插入emoji数据的情况,需要在代码中指定连接的字符集为utf8mb4。
3、用尽量少的存储空间来存数一个字段的数据
能用int的就不用char或者varchar
能用tinyint的就不用int
使用UNSIGNED存储非负数值。
不建议使用ENUM、SET类型,使用TINYINT来代替
使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED
存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE
时间字段,除特殊情况一律采用int来记录unix_timestamp
存储年使用YEAR类型。
存储日期使用DATE类型。
存储时间(精确到秒)建议使用TIMESTAMP类型,因为TIMESTAMP使用4字节,DATETIME使用8个字节。
建议使用INT UNSIGNED存储IPV4。
尽可能不使用TEXT、BLOB类型
禁止在数据库中使用VARBINARY、BLOB存储图片、文件等。建议使用其他方式存储(TFS/SFS),MySQL只保存指针信息。
单条记录大小禁止超过8k(列长度(中文)*3(UTF8)+列长度(英文)*1&