mysql学习笔记

mac用ssh连接阿里云服务器
https://www.jianshu.com/p/0cdbdc5d7d8d
cenOS安装mysql
https://blog.csdn.net/z13615480737/article/details/78906598
阿里云上的mysql数据库用户名和密码
root Root!!2018
深入浅出数据库索引原理
https://www.cnblogs.com/aspwebchh/p/6652855.html

navicat连接MySQL8.0出现2059错误
https://blog.csdn.net/qq_29932025/article/details/80045716
longtext的最大长度是4G,不能用来创建index。
主键的作用是将数据转换为平衡树结构,也有的数据库采用hash桶的形式来做索引结构,建了主键以后,就把整个表变成一个索引,在查询的时候,就可以直接定位到主键,查询速度会快很多。因此,主键本身就是一种索引,叫做聚焦索引,这种聚焦索引可以把整个数据表的形式由“表”的形式转为“索引树”的结构。整个表有索引以后,不再需要将查询的数据条件进行一对一的对比,而是直接通过index来定位相应的数据行,因此,查询速度会很快。但是由于要维持索引的正确结构,每次数据发生改变时(增删改),DBMS都需要重新梳理表结构以确保索引结构正确,因此,会降低修改数据的速度。
常规索引也叫非聚焦索引,将数某个字段设置为索引以后,DBMS会将字段中的数据拷出来,多个索引之间不存在关联关系。设置为 事实上,通过非聚焦索引最后还是要定位到主键,才能拿到数据。
还有一种特殊的索引方式叫做覆盖式索引,其实就是将要查询的内容已经放到构建索引的字段中了,因此,查索引就可以得到相应的内容,不再需要通过主键才能获取到数据内容了

sql中explain的用法:
很重要,可以分析出sql语句执行的快慢:
https://blog.csdn.net/zhuxineli/article/details/14455029

left join相比通常的where 查询条件,可以保证只要之前查询的记录(左边的表)有值,整个查询就有值,如果用常用的where查询条件,当两个表没法匹配的时候,就会导致整个查询没有返回值

hibernate在进行查询的时候,报错:org.hibernate.MappingException: No Dialect mapping for JDBC type: 0
最后发现,是sql中有这种情况:

sql = "SELECT " +
" 1 AS type, " +
" a.sjsj AS sjsj, " +
" a.zzid AS zzbs, " +
" a.dyhgl AS dyhgl, " +
" a.ysxl AS csxl, " +
" a.yxxl AS cxxl, " +
" a.high_voltege_user AS ysgdysl, " +
" a.low_voltege_user AS ysddysl, " +
" null AS zzsl "
“FROM " +
" index_dyyh_dw_month a " +
" WHERE a.sjsj=’” + sjsj + "’ ";
不能直接select null
最后的解决办法是进行如下修改:

" null AS zzsl " 改为 cast (null as char) as zzsl
同时,遇到这种问题:
···
select a.name from pd_data_dictionary a where a.type_code=‘RUNNING_STATE’ and CAST(a.data_code AS SIGNED)=t.yxztdm) as yxzt,
···
a.data_code的值是1,t.yxztdm的值是01,如果不加CAST(a.data_code AS SIGNED)的话,就无法查出值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值