MySQL
MySQL数据库优化
kicinio
这个作者很懒,什么都没留下…
展开
-
MySQL like或 regexp 多个参数 无序状态语句
LIKE单关键字准确搜索(搜索countrylanguage表中language字段含有Chinese字符的行记录, 若是结果中含有Chinese子串则不被返回)select * from countrylanguage where language like 'Chinese';搜索结果如下:单关键字搜索(搜索countrylanguage表中language字段含有Chine字符的行记录)select * from countrylanguage where language原创 2021-06-15 22:40:32 · 799 阅读 · 1 评论 -
ERROR 1826: Duplicate foreign key constraint name ‘dendrobe_id‘
现象:MySQL Workbench报错:ERROR 1826: Duplicate foreign key constraint name 'dendrobe_id'解决方法:将constraint 后面所跟的约束名加个1即可(加哪个数字都无所谓);原因:一个数据库中对应多张数据表,每张数据表或多或少有不同的constraint。通常设置外键时对应的父表的主键可能被多个子表引用,每个子表引用父表主键设置外键语句时由于人为原因(不规范、不严谨)对每个约束语句的约束名写的是一样的,就造成该错误。原创 2021-02-01 22:14:42 · 7181 阅读 · 0 评论 -
MySQL Operand should contain 1 column(s)
MySQL 报Operand should contain 1 column(s).原因: select后面跟括号了例如:select (id,name,passaoword) from user_info;去掉括号即可.select id,name,passaoword from user_info;原创 2020-12-20 22:36:01 · 589 阅读 · 0 评论 -
SpringBoot Druid连接MySQL 报错:java.sql.SQLNonTransientConnectionException: Cannot load connection class
具体报错如下:java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the connection string near ';characterEncoding=utf-8'原创 2020-12-16 20:45:53 · 765 阅读 · 0 评论 -
MySQL 基本优化策略
本篇文章仅提及基本思路。有些优化途径是很有效,但对于亟待优化的人员或囊中羞涩的学生无疑是遥不可及的,故这里不在赘述。表优化:VARCHAR大小分配到具体业务需要的控件,不要为可变类型;使用TIMESTAMP而非DATETIME;控制单表字段,尽量为20位以内;对于VARVCHAR类型数据,默认为""而非NULL(无法优化);对于仅以读为主的表,引擎可选为MyISAM,如果表的综合性能要求过高,可选InnoDB。SQL语句优化:谨慎对待“隐式转换”,该现象可导致索引失效;尽量避免“%”原创 2020-12-14 23:06:23 · 116 阅读 · 1 评论 -
MySQL 语句执行流程
本篇文章以MySQL为例浅要分析。主要分为宏观层次体系与语句层次体系。宏观层次体系:MySQL宏观层次可分为Server层与存储引擎层次。Server层:1.连接器:服务器用来确定用户的身份;2.查询缓存:查询后结果的存储位置。8.0以后被取消;3.分析器:判断内容是否符合语法规则;4.优化器:系统自动选择多种策略中的最有策略去执行;5.执行期:判断是否有权限,将最终任务提交到存储引擎。存储引擎层:该层次负责数据的存储与读取。其提供多个引擎供与选择。各种引擎的优缺点可参考这篇文章–M原创 2020-12-14 22:21:37 · 105 阅读 · 0 评论 -
MySQL 如何修改当前时区
这里仅需两步。首先打开MySQL Command Line Client,输入密码使用如下语句查看当前时区:show VARIABLES like '%time_zone%';这里我的时间已经改好了。没有改好的使用如下语句粘贴到控制台即可:settime_zone = '+8:00';需要说明的是,这里的设置方式每当服务重启或系统重启时会失效。...原创 2020-12-07 22:20:38 · 300 阅读 · 0 评论 -
使用MySQL WorkBench 如何导出数据库(包括数据)
1:打开MySQL WorkBench后,选中Server,Data Export2:在红色圈1内选中我们要导出的数据库红色圈2是导出是否包含数据;红色圈3是触发器等导出选项;红色圈4是导出路径,请记住该路径;红色圈5是开始导出3:导出完成打开我们在操作2中提到的导出路径选项,会发现有一个结尾名为.sql的文件,该文件即为我们要使用的数据库导出文件。如要导入,打开该sql文件后选中所有代码执行即可。...原创 2020-12-07 12:39:37 · 26102 阅读 · 3 评论 -
MySQL 常见引擎适合业务场景
MyISAM:默认的MySQL 插件式存储引擎。如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事的完整性、并发性要求不是很高,那么选择这个存储引擎是非常适合的。MyISAM 是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。InnoDB:用于事务处理应用程序,支持外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询以外,还包括很多的更新、删除操作,那么InnoDB 存储引擎应该是比较合适的择。InnoDB 存储引擎除了有效地降低原创 2020-11-20 21:46:51 · 274 阅读 · 0 评论 -
MySQL 复制数据到另外一张表(新建空表、已建空表)
一:仅复制表结构到新建表说明:example_new为新创建表,example_old为旧表,操作完成后仅把旧表结构复制到新建表create table example_new like example_old;二:复制结构与数据到新建表说明:创建一名为“example_new”新表,数据源与表结构来自于旧表example_oldcreate table example_new select * from example_old;三:复制数据到已建表说明:example表已创建完成,选择旧原创 2020-11-20 21:33:28 · 1540 阅读 · 0 评论 -
SQL之limit子句的使用
一:语法使用select * from table limit satrt_index,padding_index;satrt_index作用是开始查询的记录索引序号padding_index作用是从开始查询的记录索引序号偏移数字,也就是加上的数字二:示例:没加任何限制的语句:select * from countrylanguage;select * from countrylanguage limit 0,10;select * from countrylanguage lim原创 2020-11-11 23:54:12 · 436 阅读 · 0 评论