
MY SQL
我是高手高手高高手
这个作者很懒,什么都没留下…
展开
-
Navicat怎么设置保持连接间隔
Navicat怎么设置保持连接间隔转载 2023-04-23 15:11:11 · 584 阅读 · 0 评论 -
MySQL性能优化的最佳21条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1、为查询缓存优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎转载 2023-03-08 17:33:21 · 1194 阅读 · 0 评论 -
mysql 让表自增值从某个值开始增加
【代码】mysql 让表自增值从某个值开始增加。原创 2022-12-15 11:25:32 · 338 阅读 · 0 评论 -
MySQL中having的用法(聚合函数,如sum,count后,又需要筛选条件时)
mysql中,当我们用到聚合函数,如sum,count后,又需要筛选条件时,having就派上用场了,因为WHERE是在聚合前筛选记录的,having和group by是组合着用的。然后可以用having对统计的数据进一步筛选,比如nums大于2的数。注意 having后的判断字段必须是聚合函数返回的结果。先查询分类cid下 id的统计数目。MySQL中having的用法。转载 2022-11-18 11:23:46 · 3584 阅读 · 0 评论 -
mysql 数据从5.6版迁移到5.7以后版的数据(包括8.0) 提示sql_mode=only_full_group_by解决办法
mysql 5.7版本默认的sql配置是:sql_mode="ONLY_FULL_GROUP_BY",这个配置严格执行了"SQL92标准"。和group by字段中同时出现,或者是聚合函数的值的话,那么这条sql查询是被mysql认为非法的,会报错误。对于group by聚合操作,select中的列只能是出现在group by中的列,使用聚合函数除外,如max()、min()等。这个方法的好处是不用重启MySQL生效(需要注意的是在当前会话实例中是不生效的),坏处是重启后会恢复原样。原创 2022-10-14 12:42:33 · 794 阅读 · 0 评论 -
mysql语句查询很慢(数据不多或都有索引)
从语句上看不复杂,也查询索引 number都有创建索引,应该不会这么慢的,发现一个问题:只是一个简单的两个表关联查询,发现运行很慢。为了保持一到,把utf8mb4改成utf8;如果在表设计更改的字符集也一定再运行。edu_reg_unu是utf8。edu_od是utf8mb4。原创 2022-09-07 17:11:35 · 345 阅读 · 0 评论 -
最全的SQL练习题
最全的SQL练习题(做完你就是高手)蜀山客转载 2022-04-26 11:26:53 · 8172 阅读 · 2 评论 -
mysql REPLACE INT 复制数据有相同数据更新,没插入新增
//1.不判断重复数据,有相同数据都当新数据插入INSERT INTO `power_node`(title,type,status) SELECT title,type,status FROM power_node WHERE id < 5;//2.判断重复数据,有相同数据更新数据(但是数据中要唯一的联合索引)REPLACE INTO `power_node` SELECT * FROM power_node WHERE id < 5;...转载 2022-02-18 19:20:01 · 636 阅读 · 0 评论 -
mysql navicat 自动执行定时任务/事件
一、先看服务器MYSQL服务是否开启1.查看是否开启定时任务show variables like '%event%';原创 2022-02-15 12:14:23 · 16394 阅读 · 0 评论 -
ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
用管理员打开CMD原创 2022-01-29 22:05:54 · 1196 阅读 · 0 评论 -
广电网宽带 如果要远程连接阿里RDS数据库,设置了白名单也不行。
如果你使用的是广电网的宽带,就是有线电视同一条的宽带,比如珠江宽频。如果你要能过设置数据库白名单来远程连接,发现怎么也远程不上。1、查本机IP2、把这个ip填写到白名单中,发现还是连接不上。解决办法:在白名单中设置:0.0.0.0/0 没有限制,发现在连接上了通过数据库来查IPshow processlist;上面同时是查了多个阿里数据库,发现在每个IP都不同一样,说明IP都在变,所以白名单要设置IP段,而且不是具体IP假如:135.56.231.55.原创 2022-01-23 18:04:45 · 1188 阅读 · 2 评论 -
php json_encode mysql储存不是中文 乱码 Unicode转中文保存
json_encode(数组)保存是转义改储存中文json_encode(数组,JSON_UNESCAPED_UNICODE)原创 2021-12-09 23:19:05 · 736 阅读 · 0 评论 -
PHP 和 MySQL 中ip与int的互相转换(ip转数字/整数)
有些场景需要存ip地址的时候,为了性能的提升可能考虑到要将ip地址转换成的int类型存到数据库中。 优点:不仅在空间上有了节省,也提升了查询的性能。 缺点:阅读比较困难需要转换之后阅读。 下面就来看下PHP 和MySQL中ip如何和int互相转换: PHP $ip = '192.168.142.43'; $long = ip2long($ip);//ip 转 int 3232271915 echo $long."<br>"; echo long2ip($转载 2021-12-08 18:43:35 · 833 阅读 · 0 评论 -
tp6动态连接数据库(连接除database.php配置外的数据库(临时数据库等))
//use think\facade\Config;$config = Config::get('database');$config['connections']['tmp'] = [ 'type' => 'mysql', 'hostname' => 'localhost', 'database' => 'test', 'username' => 'root', 'password' =&.转载 2021-11-26 09:53:26 · 1884 阅读 · 0 评论 -
TP6 条件查询 sql判断条件 when
官网教程:高级查询 · ThinkPHP6.0完全开发手册 · 看云条件查询查询构造器支持条件查询,例如:$condition=条件Db::name('user')->when($condition, function ($query) { // 满足条件后执行 $query->where('score', '>', 80)->limit(10);})->select();并且支持不满足条件的分支查询Db::name('user'原创 2021-11-24 16:04:10 · 2795 阅读 · 0 评论 -
MySQL 千万 级数据量根据(索引)优化 查询 速度
一、索引的作用索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万,一条查询sql执行往往需要几十秒甚至更多,5秒以上就已经让人难以忍受了。提升查询速度的方向一是提升硬件(内存、cpu、硬盘),二是在软件上优化(加索引、优化sql;优化sql不在本文阐述范围之内)。能在软件上解决的,就不在硬件上解决,毕竟硬件提升代价昂贵,性价比太低。代价小且行之有效的解决方法就是合理的加索引。索引使用得当,能使查询速度提升上万倍,效果惊转载 2021-08-23 10:35:23 · 1967 阅读 · 0 评论 -
MySQL默认值NULL、空值、Empty String的区别,如何选择?
工作一年左右了,发现其实工作中除了需要实现业务代码外,更多的是与数据库打交道。最近因为项目需要,我也逐渐参与进入数据库的设计,从而发现了很多之前没有过多注意的问题。回想这一年来,写博客的次数屈指可数,现在想重新拾起,所以打算从数据库方面入手,先总结一个比较简单但非常常用的知识点——mysql中字段默认值的问题。我们可以看到,默认值的设置主要分为三种:空值,空白,即什么都不填,等同于NULL(设计表结构时保存空值会自动变成NULL),当然也可以手动输入默认值。NULL。Empty S.转载 2021-07-29 15:04:05 · 4819 阅读 · 0 评论 -
php mysql 位运算
位运算,赋值状态时异或对应位数1的整形,判断状态则与运算对应位数1的整形。最大用处就是同时判断32位状态,节省存储空间,便于扩展,原创 2021-07-16 15:35:03 · 204 阅读 · 0 评论 -
mysql数据库 在Navicat中更新值 mysql语句
//更新值为文本,加""UPDATE xxxx SET controller='Live' WHERE mold=1;//更新值为数字UPDATE xxx SET tpye=1 WHERE mold=2;原创 2021-02-27 11:53:06 · 4096 阅读 · 0 评论 -
mysql navicat 设置int unsigned(不能负数 只能正整数)
UNSIGNED属性就是将数字类型无符号化,与C、C++这些程序语言中的unsigned含义相同。例如,INT的类型范围是-2 147 483 648 ~ 2 147 483 647, INT UNSIGNED的范围类型就是0 ~ 4 294 967 295。两种方法 第一 建表语句中设置例如: 第二 Navicat中设置 第一先选中该字段 第二勾选 ...转载 2021-01-16 15:43:31 · 7766 阅读 · 0 评论 -
MySQL 数据库字符集 utf8 和 utf8mb4 的区别
MySQL 的 utf8 实际上不是真正的 UTF-8。utf8 只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。MySQL 一直没有修复这个 bug,他们在 2010 年发布了一个叫作 utf8mb4 的字符集,绕过了这个问题。当然,他们并没有对新的字符集广而告之(可能是因为这个 bug 让他们觉得很尴尬),以致于现在网络上仍然在建议开发者使用 utf8,但这些建议都是错误的。简单概括如下:(1)MySQL 的 utf8mb4 是真正的 UTF-8。(2)MySQ转载 2021-01-16 14:40:59 · 366 阅读 · 0 评论 -
值得收藏的一份MySQL规范
本文档是为帮助研发与运维人员按照规范使用MySQL数据库,提升研发写SQL的水平。致力于提供一个安全,稳定,高性能的数据库环境。命名规范1) 库名、表名、字段名必须使用小写字母,"_"分割。2) 库名、表名、字段名不超过12个字符。3) 库名、表名、字段名禁止使用MySQL保留字,见附件。4) 库名、表名、字段名见名知意,建议使用名词而不是动词。5) 数据对象、变量的命名都采用英文字符,禁止使用中文命名。6) 临时库、表名必须以tmp为前缀,并以日期为后缀。7) 备份库、表必须以bak转载 2021-01-16 14:28:33 · 189 阅读 · 0 评论 -
TP6 分布式数据库:主从同步、读写分离
进入正题之前,首先来看下分布式数据库出现的场景都有哪些:单表数据量爆炸,千万级、亿级等,各种数据操作效率很低 。 关系型数据库在大于一定数据量的情况下检索性能会急剧下降。在面对互联网海量数据情况时,所有数据都存于一张表,显然会轻易超过数据库表可承受的数据量阀值。这个单表可承受的数据量阀值,需根据数据库和并发量的差异,通过实际测试获得; 单机数据库的瓶颈问题,处理不了高强度io。现代企业程序的瓶颈问题是数据库的瓶颈问题,所以数据库只做存储用,不再使用触发器,事物; 不同业务对应不同业务数据库,即使某个转载 2020-11-21 15:42:37 · 3179 阅读 · 0 评论 -
SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_
数据库表中编码不一致造成的看你自身的用那个,修改成一致就可以原创 2020-11-07 12:04:35 · 5747 阅读 · 0 评论 -
MySQL 数据库创建/优化规则
(一)建表规约1. 【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint (1 表示是,0 表示否)。 说明:任何字段如果为非负数,必须是 unsigned。 注意:POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在<resultMap>设置 从 is_xxx 到 Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,坚持 is_xxx 的 命名方式是为了明确其取值含义与取值范围转载 2020-10-10 15:06:47 · 600 阅读 · 0 评论 -
RDS数据库迁移错误解决方法
一、第一种:就是同一个数据库迁移一次任务后,再次重新迁移数据(想多第一迁移数据不成功,再迁移一次)1.1 server_id或server_id 解决办法 值大于21.2 binlog_format 解决办法 值改为row官网教程:https://help.aliyun.com/document_detail/125728.html?spm=a2c4g.11186623.2.11.518c1f96sIbkMv#concept-1198525log_bin=mysql_b...转载 2020-10-01 16:48:19 · 533 阅读 · 0 评论 -
RDS数据库备份与还原(单库、单表)
官网教程:https://help.aliyun.com/document_detail/103175.html?spm=5176.10695662.1996646101.searchclickresult.7ea8242fp03RZt首先一定要设置备份转载 2020-09-30 15:48:39 · 996 阅读 · 0 评论 -
阿里ECS云服务器连接RDS数据库服务器小白图文详细教程(云企业)
场景:购买了一个ESC云服务器专门运行代码,再购买一个RDS数据库服务器专门放数据,现在就是要ESC的连接上RDS的数据库一、购买RDS数据库服务器要要点购买数据库时配置时,这里一定要选择ESC云服务器那里的VPC,不要选择默认VPC1.1 如果这里选择ESC的VPC,那么恭喜你,购买成功配置好数据库就可以连接数据库1.2 如果这里选择默认VPC,就麻烦了,下面的教程就是如何操作...原创 2020-09-30 10:47:03 · 2919 阅读 · 0 评论 -
Linux mysql(日志)占用大量磁盘空间问题原因及解决方法
1.查看 df -hdu --max-depth=1 -hcd mysql/du -sh *原创 2020-09-13 10:00:46 · 3678 阅读 · 0 评论 -
tp5 php mysql leftjoin 去重复记录
表之间关联的关系不是一对一的,可能是一对多的所以会把那张多的表数据也就查询出来,导致数据重复。order表中number数据对应order_product表多记录 $rsu=Db::name('order') ->alias('o') ->leftjoin('user u','u.id=o.user_id') ->leftjoin('order_product op','op.number=o.number')解决方案参考:建表:.转载 2020-09-09 11:50:12 · 1297 阅读 · 0 评论 -
宝塔 navicat 连接数据库mysql
宝塔面板mysql怎么用navicat 连接数据库呢?首先要开放3306端口和安全组3306.具体操作如下:1、放行3306端口3、若您已创建数据库,需要修改,请打开phpMyAdmin4、点击用户,并编辑指定用户的权限:5、点击登陆信息一栏,修改Host信息为【任意主机】,再点击最下面的执行按钮即可!6、下载navicat客户端,登陆连接Mysql数据库...转载 2020-06-09 14:43:22 · 1530 阅读 · 0 评论 -
navicat查看MySQL数据库、表容量大小
1. 查看所有数据库容量大小selecttable_schema as '数据库',sum(table_rows) as '记录数',sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'from information_...转载 2020-04-11 01:50:15 · 11145 阅读 · 6 评论 -
php语句增加字段 MySQL语句增加字段,修改字段名,修改类型,修改默认值
增加字段:alter table 表名 ADD 字段 类型 约束 [默认值 注释]ALTER TABLE video ADD category_id int(11) unsigned not null DEFAULT '0' COMMENT '视频分类id';修改字段名:alter table 表名 rename column A to BALTER TABLE video RENA...转载 2020-03-30 00:18:15 · 1227 阅读 · 0 评论 -
mysql SQLSTATE[HY000] [1045] Access denied for user
网站放到服务器后重置了MySQL密码后提示“SQLSTATE[HY000] [1045] Access denied for user ‘root’@‘localhost’ (using password: YES)”错误;解决步骤找到连接数据库的代码把127.0.0.1改成localhost也可以把localhost改成127.0.0.1—————————————...转载 2020-03-10 16:00:23 · 38462 阅读 · 0 评论 -
tp5 foreach 套循环的优化(就是foreach 里边再查表)
优化建议:1.不要foreach里边再查询表,因为循环多次查表会很占资源的2.没有办法就关联表查询join例子:原写法: $rsdo=Db::name('order')->field('id,number,pay_number,type')->where('user_id', $user_id)->where('state',0)->w...原创 2020-01-14 17:03:19 · 3746 阅读 · 0 评论 -
mysql timestamp,datetime,int 类型的区别与优劣
int1. 占用4个字节2. 建立索引之后,查询速度快3. 条件范围搜索可以使用使用between4. 不能使用mysql提供的时间函数结论:适合需要进行大量时间范围查询的数据表datetime1. 占用8个字节2. 允许为空值,可以自定义值,系统不会自动修改其值。3. 实际格式储存(Just stores what you have stored a...转载 2020-01-08 23:04:49 · 176 阅读 · 0 评论 -
服务器 mysqld占用CPU过高(mysql慢日志)mysql优化
一、方法:修改缓存大小修改mysql 的内存临时表两个参数 tmp_table_size、max_heap_table_size在Linux下叫my.cnf,该文件位于/etc/my.cnf。教程:https://blog.youkuaiyun.com/haibo0668/article/details/51565283参考:https://www.cnblogs.com/kevi...原创 2019-12-18 17:41:38 · 2310 阅读 · 0 评论 -
tp5.1 whereTime whereRaw 原数据中达不到查询条件 可以改变查询条件(比如在原数据时间字段上延迟多30分中钟才结果)
例子:查询endtime字段时间结束后30分钟的数据表中值是:endtime =2019-11-22 11:00:00;->whereTime('endtime', '>=', time())但是因为延迟30分钟,上面查询条件的数据就不对,查不到延迟后的数据,因为表中数据就是30分前的。所以修改查询语句,语句中应该是要查询30分钟后的->whereRaw(...原创 2019-11-22 12:26:39 · 1775 阅读 · 0 评论 -
Linux下MySQL配置文件my.ini/my.cnf位置
MySQL配置文件在Windows下叫my.ini,在Linux下叫my.cnf,该文件位于/etc/my.cnf。也可以通过命令来查找find / -name my.cnf原创 2016-06-02 11:44:28 · 14909 阅读 · 0 评论 -
Navicat 运行sql文件报错:2006 - MySQL server has gone away
入的时候报错了,是一串英文提示[ERR] 2006 - MySQL server has gone away在百度上找了一些相关的攻略,最后用的是这个方法解决的:1.停掉mysql服务。2.将以下代码添加到my.ini文件中并保存,my.ini这个文件就在MySQL 的安装目录下 。max_allowed_packet=50Mwait_timeout=288000inte...转载 2019-11-19 14:06:19 · 1182 阅读 · 1 评论