mysql

mysql数据库优化大全

限于喜欢 提交于 2021-02-14 08:50:48
数据库优化 sql语句优化 索引优化 加缓存 读写分离 分区 分布式数据库(垂直切分) 水平切分 MyISAM和InnoDB的区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务; 2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败; 3. InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快; 4. Innodb不支持全文索引,而MyISAM支持全文索引,查询效率上MyISAM要高; 5. 锁机制不同: InnoDB 为行级锁,myisam 为表级锁。 注意:当数据库无法确定,所找的行时,也会变为锁定整个表。 如: update table set num = 10 where username like “%test%”; 作者:Oscarwin 链接: https://www.zhihu.com/question/20596402/answer/211492971 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权

What does the @ symbol means on a Procedure in MySQL?

六眼飞鱼酱① 提交于 2021-02-14 08:21:54
问题 What's the difference between accessing a variable with @ or without? 回答1: The @ makes it a user defined session variable. Otherwise it would be locally scoped variable (in a stored procedure), you would have to DEFINE your local before you can SET it. You could also set a global system variable (with SET GLOBAL or SET @@global ) if you wanted to. As well as a session system variable with SET SESSION var or SET @@session var or SET @@var . More details about SET from the documentation: If no

What does the @ symbol means on a Procedure in MySQL?

你。 提交于 2021-02-14 08:17:34
问题 What's the difference between accessing a variable with @ or without? 回答1: The @ makes it a user defined session variable. Otherwise it would be locally scoped variable (in a stored procedure), you would have to DEFINE your local before you can SET it. You could also set a global system variable (with SET GLOBAL or SET @@global ) if you wanted to. As well as a session system variable with SET SESSION var or SET @@session var or SET @@var . More details about SET from the documentation: If no

达梦数据库DM7部署方案

佐手、 提交于 2021-02-14 07:43:44
第一章 1.1流程 1.规划部署实施信息 1)规划程序安装路径 2)规划数据库实例数据存放路径 3)规划归档路径 4)规划备份路径 5)规划实例配置 2.使用安装包进行安装 3.创建实例数据库 1)配置库名 2)配置实例名 3)配置端口号 4)配置数据库参数 4.配置数据库 1)设置归档 2)设置定时归档 3)设置定时清理备份 4)设置定时清理归档 5.优化数据库 1)参数优化 2)兼容性优化 6.管理数据库 1)修改超级管理员用户 2)增加数据库管理员 3)增加系统管理员 4)增加普通用户 第二章 部署规划 2.1路径规划 安装路径 /home/dmdba/dmdbms 数据库实例数据路径 /dmdata/TYYW2 归档路径 /dmdata/TYYW2/arch 备份路径 /dmdata/TYYW2/bak 2.2实例规划 库名:TYYW2 实例名:TYYW2 端口号:5236 页大小:16 编码格式:GB18030 大小写敏感:是 2.3配置规划 归档文件大小:128M 归档最大大小:128000M 定时备份时间间隔:每周全量,每天增量 定时清理备份时间范围:清理1个月之前备份 定时清理归档时间范围:清理1个月之前的归档 2.4优化规划 数据库兼容性参数:兼容ORACLE 2.5管理规划 超级管理账号密码:SYSDBA/Dameng_admin 新建数据库管理员:DMDBA

如何去写一手好SQL ?

对着背影说爱祢 提交于 2021-02-14 06:11:05
作者:编码砖家 cnblogs.com/xiaoyangjia/p/11267191.html MySQL性能 最大数据量 最大并发数 查询耗时0.5秒 实施原则 数据表设计 数据类型 避免空值 text类型 索引优化 索引分类 优化原则 SQL优化 分批处理 不做列运算 避免Select * 操作符<>优化 OR优化 IN优化 LIKE优化 JOIN优化 LIMIT优化 其他数据库 博主负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟。导出日志后分析,主要原因竟然是没有命中索引和没有分页处理。其实这是非常低级的错误,我不禁后背一凉,团队成员的技术水平亟待提高啊。改造这些SQL的过程中,总结了一些经验分享给大家,如果有错误欢迎批评指正。 MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据的单表,分页查询最新的20条记录耗时0.6秒,SQL语句大致是 select field_1,field_2

MySQL安装及安装问题解答(二)

本秂侑毒 提交于 2021-02-14 03:59:37
在安装过程中难免会有一些异常情况出现,笔者对一部分异常情况做出解答以供参考 1.MySQL未能成功启动 在输入net start mysql后提示 MySQL 服务正在启动, MySQL 服务无法启动。 服务没有报告任何错误。 1.1 第一种情况为MySQL的运行端口3306被其他程序占用或被防火墙禁止, 输入mysqld --console,如果出现 [ERROR] Can’t start server: Bind on TCP/IP port: No such file or directory [ERROR] Do you already have another mysqld server running on port: 3306 ? [ERROR] Aborting M1:输入netstat -aon|findstr “3306” 去查找占用了3306端口的进程id,然后通过任务管理器关闭该id的进程 M2:输入netstat -ano,查找在TCP协议下3306端口对应的PID,同样关闭它 以上命令打开cmd直接输入查询 如果不是以上错误或者查询不到3306端口,那么一般表示3306端口并没有被占用 参考博主: https://blog.csdn.net/koloumi/article/details/83117497 1.2 输入mysqld --console

最新 美团java校招面经 (含整理过的面试题大全)

你离开我真会死。 提交于 2021-02-13 22:42:02
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火、京东、去哪儿、美团等10家互联网公司的校招Offer,因为某些自身原因最终选择了美团。6、7月主要是做系统复习、项目复盘、LeetCode与牛客刷题等准备工作,并且投了字节跳动、拼多多、猿辅导在内的几家公司的提前批,当然还是挂在了简历,因为毕竟自己的学校、学历、项目经验肯定比不过牛客网上那些大厂实习的大佬了,有时间也给自己做个总结,也希望能帮助到大家 (PS:再次编辑,感谢大家的支持,受宠若惊。私信问我要这些面试答案的,希望交流的朋友很多,但是很多不能及时看到,没办法一个个发给大家,大家注意下中间的百度网盘链接,整理成了pdf分享下给大家,也包括我之前面试准备的题跟视频,也可以进群交流,这样沟通成本少点) 校招心得 注重实力,保持良好心态 :面试过程中,继续巩固好自己的技术栈,然后保持一个良好的心态,尤其是还没有Offer的时候,心态别崩,其实到最后大家都会找到工作的,唯一的区别就是公司的方向、规模、待遇方面,也别太在意别人拿到了牛X的Offer,尤其是牛客网,天天神仙打架,刚开始自己也是很纳闷,怎么就能这么牛,最后也都见怪不怪了~。好多之前一直没Offer的人,可能突然某一天就收获到了几份Offer,所以不断提升自己的综合能力才是关键,与其在这羡慕别人,不如让自己心态沉静下来,认真复习、厚积薄发。 多交流,多思考

Starting MySQL.. ERROR! The server quit without updating PID file (/var/mysql/data/feng.pid). 问题解决方案

岁酱吖の 提交于 2021-02-13 22:13:24
Starting MySQL.. ERROR! The server quit without updating PID file (/var/mysql/data/feng.pid). 问题解决方案 参考文章: (1)Starting MySQL.. ERROR! The server quit without updating PID file (/var/mysql/data/feng.pid). 问题解决方案 (2)https://www.cnblogs.com/gaohj/p/8950502.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4432649/blog/4952684

MySQL学习(六)

99封情书 提交于 2021-02-13 21:28:41
1 注意 select cout(*) from 表名; 查询的就是绝对的行数,哪怕某一列所有字段全部为NULL,也计算在内。而select cout(列名) form 表名;查询的是该列不为null的所有行的行数。 用count(*)和count(1)那个更好? 对于myisam引擎的表,没有区别,这种引擎内部有一个计数器在维护着行数,对Innodb的表,用count(*)直接读行数,效率很低,因为Innodb的表真的要去数一遍。 2 mysql> select sum(shop_price) from -> goods -> where cat_id = 3; mysql> select sum(goods_number) from goods -> where cat_id = 4; 计算每个栏目下的库存量之和 配合group语句使用 mysql> select cat_id, sum(goods_number) from goods -> group by cat_id; 典型错误 mysql> select goos_id,sum(goods_number) from goods; ERROR 1140 (42000): In aggregated query without GROUP BY, expression #1 of SELECT list contains