MySql
ノBye~
这个作者很懒,什么都没留下…
展开
-
MySQL百万级数据表查询当日数据索引的使用
问题:线上平台某功能,查询当日数据列表,表数据量60万,针对时间字段已添加索引,但是查询时长6s,不指定任何where条件查询时长也是6s,说明该条sql全表查询,并未触发索引;查询指定数据库各表容量分析数据selecttable_schema as '数据库',table_name as '表名',table_rows as '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',truncate(index_length/1024原创 2021-12-20 10:33:49 · 1226 阅读 · 0 评论 -
MySQL的连接使用
JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。 LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。 RIGHT JOIN(右连接):与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。 FULL JOIN(全连接):两张表中所有数据都显示,实际就是inner +(left-inner)+(right-inner)...原创 2021-05-20 14:29:41 · 71 阅读 · 0 评论 -
MySQL中isnull,ifnull和nullif的区别
1. isnull判断是不是null,若是则返回1,若不是返回0,mysql不会将空字符串和0判断为空,比较严谨,只会讲真实的null判断为空。sql>select isnull(0)console>0sql>select isnull('')console>0sql>select isnull(null)console>12. ifnull函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL原创 2021-05-20 11:00:11 · 308 阅读 · 0 评论 -
Mysql 查询统计不同类型的订单缴费金额和笔数
select COALESCE(sum(case when order_state='1' then paid_amount else 0 end),0) errSumMoney, COALESCE(sum(case when order_state='2' then paid_amount else 0 end),0) sucSumMoney, count(case when order_state='2' then id else 0 end) sucCountNumfrom...原创 2021-01-13 18:02:11 · 1568 阅读 · 0 评论 -
Linux Mysql8.0修改配置文件区分大小写
mysql8.0修改my.cnf文件,[mysqld]块最后一行追加lower_case_table_names=1(0区分1不区分)systemctl start mysqld.service启动服务【报错】查看MySQL官方文档,有记录:lower_case_table_names can only be configured when initializing the server. Changing the lower_case_table_names setting after原创 2020-10-19 22:03:41 · 2422 阅读 · 0 评论 -
mybatis中连接数据库配置参数
一、"allowMultiQueries=true"的作用可以在sql语句后携带分号,实现多语句执行 可以执行批处理,同时发出多个SQL语句二、"useUnicode=true&characterEncoding=UTF-8"的作用指定字符的编码、解码格式,例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8,那么作用有如下两个方面: 1. 存...原创 2020-10-10 10:16:43 · 1045 阅读 · 0 评论 -
mysql 数据入库日期时间12小时问题
问题:java代码插入数据库datetime日期时间为:2017-08-21 17:29:56结果在数据库中显示的datetime日期时间为:2017-08-21 09:29:56原因:因为时区设置的问题。UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。UTC + (+0800) = 本地(北京)时间解决:url的时区使用中国标准时间。也是就&serverTimezone=Asia/Shanghai例:jdb.原创 2020-06-17 23:04:27 · 1637 阅读 · 0 评论 -
MySQL 的inet_aton()和inet_ntoa()函数存储IP地址
当前很多应用都适用字符串char(15)来存储IP地址(占用16个字节),利用inet_aton()和inet_ntoa()函数,来存储IP地址效率很高,适用unsigned int 就可以满足需求,不需要使用bigint,只需要4个字节,节省存储空间,同时效率也高很多为什么要问如何存储IP?首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗?...原创 2019-11-06 11:07:26 · 295 阅读 · 0 评论 -
MySQL查看数据库及表容量大小
注:查询结果实时同步,已测试1. 查看所有数据库容量大小SELECT table_schema AS '数据库', sum(table_rows) AS '记录数', sum( TRUNCATE (data_length / 1024 / 1024, 2) ) AS '数据容量(MB)', sum( TRUNCATE (index_length / 1024 / 102...转载 2019-11-06 10:32:57 · 187 阅读 · 0 评论 -
MySQL规范
一、数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀 所有存储相同数据的列名和...转载 2019-11-06 10:16:15 · 113 阅读 · 0 评论 -
MySQL 根据两点经纬度计算距离(单位/m)
1.根据两点位置计算距离(单位/公里)-- start_position_longitude经度,start_position_latitude纬度SELECTst_distance ( point (start_position_longitude, start_position_latitude), point ('117.191136...原创 2019-06-19 14:19:47 · 1496 阅读 · 0 评论 -
MySQL 联合查询UNION和UNION ALL 的使用
描述MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同.SQL UNION...原创 2018-12-14 10:40:32 · 207 阅读 · 0 评论 -
MySql Group分组的使用
需求:查询指定公司下每个等级有多少个用户,总共有多少用户1.用户表 user_info2.用户等级关联表 user_members3.等级表 member_levelSELECT coalesce(ml.level_name, '总数'), SUM(1) as userNum FROM user_info AS us JOIN user_members AS um on um.u...原创 2018-11-23 14:09:26 · 182 阅读 · 1 评论 -
MySql 日期时间的查询使用
-- 取得相隔秒数SELECT UNIX_TIMESTAMP('2012-06-09 00:10:11')-UNIX_TIMESTAMP('2012-06-09 00:09:12')-- 取得相隔分钟数SELECT round((UNIX_TIMESTAMP('2012-06-09 00:10:11')-UNIX_TIMESTAMP('2012-06-09 00:09:12'))/60)...原创 2018-11-08 15:31:51 · 270 阅读 · 0 评论 -
Mybatis SelectKey实例
SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,他可以很随意的设置生成主键的方式。不管SelectKey有多好,尽量不要遇到这种情况吧,毕竟很麻烦。属性 描述 keyProperty selectKey 语句结果应该被设置的目标属性。 resultType 结果的类型。MyBatis 通常可以算出来,但是写上也没有问题。M...原创 2018-11-05 17:57:00 · 359 阅读 · 0 评论 -
MySql 根据手机号码前三位和后四位查询
MySql-------------------------------------------------------------select iphone from likeiphone where iphone LIKE '150%%38395'-------------------------------------------------------------输出结果---...原创 2018-11-02 19:12:48 · 14229 阅读 · 8 评论 -
MySql中的count()函数
1.count()函数是用来统计表中记录的一个函数,返回匹配条件的行数。2.count()语法:(1)count(*)---包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,不会忽略列值为NULL的记录。(2)count(1)---忽略所有列,1表示一个固定值,也可以用count(2)、count(3)代替,在统计结果的时候,不会忽略列值为NULL的记录。(3)c...原创 2018-10-30 23:52:05 · 262 阅读 · 0 评论