MySQL
文章平均质量分 60
嗨皮螃
喜欢软件,喜欢创造
展开
-
MySQL学习笔记
数值最大的字段,就是出重复后占比总数据量最大的字段,也就是适合放在最左边的字段。配置需要同步的主节点的host、port、user、password、中继日志文件名、日志节点。4,group和order语法使用时,需要和id组成联合索引来快速查询并解决数据不一致的问题。使用索引查询结果的数据量应占全表的30%以下,才建议使用索引。text字段要和主表分离,单独的表进行存储,预防制作索引的时候影响索引扫描效率。2,根据sql语句建立索引,索引的先后顺序会影响sql语句的执行效率。......原创 2022-07-23 14:17:23 · 307 阅读 · 0 评论 -
MySQL锁机制
1,InnoDB 与 MyISAM 的相当大的两点不同在于:2,行级锁本身与表级锁的实现差别就很大,而事务的引入也带来了很多新问题,尤其是事务的隔离性,与锁机制息息相关。3,对于事务的基本操作,对于不同隔离级别可能引发的问题,像脏读、不可重复读等问题我们上一节就已经举例说明了,这里就不再赘述了。4,数据库实现事务隔离的方式,基本可以分为两种:5,上面的(4.2)方式就是数据多版本并发控制,也就是多版本数据库,一般简称为 MVCC 或者 MCC,它是 Multi Version Concurrency Con原创 2022-07-08 17:16:43 · 509 阅读 · 0 评论 -
明明白白告诉你MySQL索引效率分析和使用原则
EXPLAIN语句的基本语法如下:使用EXTENED关键字,EXPLAIN语句将产生附加信息。select_options 是SELECT语句的查询选项,包括FROM WHERE子句等。执行该语句,可以分析EXPLAIN后面的SELECT语句的执行情况,并且能够分析出所查 询的表的一些特征。使用EXPLAIN语句来分析1个查询语句,执行如下语句:下面我们对查询结果进行解释: 性能判定依据主要字段信息不同值的解释: 查询效率大概的顺序为:USING index 查询效率最高Using where 次于...原创 2022-07-06 21:55:32 · 5329 阅读 · 1 评论 -
MySQL索引
myisam:myisam存储引擎的普通索引与主键索引在索引指向方面【都是指定位实际的数据在磁盘中的位置】innodb:innodb存储引擎的普通索引与主键索引在索引指定方面是【普通索引指向主键索引的数据以及索引相关字段数据在磁盘中的位置(即单独的数据空间存储索引和数据主键值),主键索引指向的是数据在磁盘中实际的位置】故使用innodb普通索引搜索的数据需要暂时 没有制作索引的字段的时候,需要回表查询其他数据字段 实践:host字段添加索引 情况1就是覆盖索引,查询效率最高的情况 概念:根据普通索引查询到主原创 2022-07-06 20:45:42 · 199 阅读 · 0 评论 -
MySQL压测
在MySQL安装位置的bin目录下测试100个并发线程,测试次数1次,自动生成SQL测试脚本,读、写、更新混合测试,自增长字段,测试引擎为innodb,共运行5000次查询。--auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。--auto-generate-sql-load-type=type 测试语句的类型。代表要测试的环境是读操作还是写操作还是两者混合的。取值包括:read,key,write,update和mixed(默原创 2022-07-03 20:50:06 · 559 阅读 · 0 评论 -
MySQL性能问题以及查找和处理
问题:需求要求 innodb表(非myIsm)的千万级数据量的实时更新汇总,sql语句是: 优化方案1:创建统计表,每增加数据时统计表执行+1操作。弊端:数据库IO开销增加优化方案2:每日定时更新统计表的数据汇总。弊端:非实时更新数据汇总优化方案3:使用redis记录增加数据时统计字段执行+1操作,每日定时写入数据库CPU1核、运行内存1G 压测并发能抗100 CPU8核、运行内存16G 压测并发能抗5000a,冷热数据分离b,text(64kb)、mediumtext(16MB)和longtext(4GB原创 2022-07-03 18:18:43 · 753 阅读 · 0 评论 -
MySQL多字段相同数据去重复
MySQL多字段去重复实际上是单字段去重复的衍生,原理就是把多字段数据通过子查询合并为单字段的数据表,再通过单字段数据group by 进行汇总,用 having把 count(字段) > 1的数据都显示出来,最后把查找到的重复数据 用min方法或者max方法获取最小id或者最大id来选择删除。......原创 2022-06-24 10:52:11 · 9636 阅读 · 0 评论 -
MySQL5.7自带分词搜索使用
如果MySQL数据库是低于5.7版本的,需要备份数据库并且更新为5.7原理:ngram全文解析器ngram就是一段文字里面连续的n个字的序列。ngram全文解析器能够对文本进行分词,每个单词是连续的n个字的序列。例如,用ngram全文解析器对“恭喜发财”进行分词:n=1: '恭', '喜', '发', '财' n=2: '恭喜', '喜发', '发财' n=3: '恭喜发', '喜发财' n=4: '恭喜发财'准备:MySQL 中使用全局变量 ngram_token_原创 2021-12-09 17:32:00 · 2158 阅读 · 0 评论 -
使用sql查询得到伪三维数组
使用sql查询直接得到伪三维数组的数据,省略一些后端语言的逻辑代码角色表CREATE TABLE `dp_admin_role` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '角色id', `pid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '上级角色', `name` varchar(32) NOT NULL DEFAULT '' COMMENT '角色名称',原创 2021-03-05 15:14:33 · 322 阅读 · 1 评论 -
Mysql 列转行 实例
数据结构抽奖箱表CREATE TABLE `yoshop_shang_activity_box` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号', `activity_id` int(11) NOT NULL COMMENT '活动id', `number` int(11) NOT NULL COMMENT '活动下的箱子编号', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREME.原创 2021-02-03 17:03:56 · 93 阅读 · 0 评论 -
MySQL 显示group分组后 某个字段的所有子项字段值
表结构CREATE TABLE `t_log_role_room` ( `id` int(11) NOT NULL AUTO_INCREMENT, `role_id` int(11) NOT NULL COMMENT '房间ID', `room_key` bigint(32) NOT NULL COMMENT 't_log_room对应房间的主键', `gold` bigint(32) NOT NULL COMMENT '房间内金币增减', PRIMARY KEY (`id`),原创 2021-01-30 15:56:36 · 2987 阅读 · 1 评论 -
MySQL 动态获取每日的时间
动态获取每日时间 常用于 按时间汇总的时候 使用,将时间作为左连接的条件进行 多表左连接汇总-- @startDate 这是开始时间戳-- @endDate 这是结束时间戳 SELECT ADDDATE(ADDDATE( FROM_UNIXTIME(@startDate,'%Y-%m-%d'), INTERVAL @i:=@i+1 DAY), INTERVAL 1 DAY) AS day_time FROM ( S原创 2021-01-23 15:41:14 · 369 阅读 · 0 评论 -
MySQL 获取每日数据的最大值所在的数据列
表结构:CREATE TABLE `t_log_online` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `online` int(10) unsigned NOT NULL COMMENT '在线人数量', `distinct_ip` int(11) NOT NULL DEFAULT '0' COMMENT '在线IP数量', `dateline` int(11) NOT NULL COMMENT '写入时间戳', PRIM原创 2021-01-23 14:27:21 · 1562 阅读 · 1 评论 -
mysql数据库恢复
打开公司项目报错,查找数据库发现 数据库数据都没有了,【脑门黑线】(1, '以下数据库已被删除:table。 我们有完整的备份。 要恢复它,您必须向我们的比特币地址1EHbFG5MEpzoVpstEdMAVFAwVdrfbcm4hR支付0.02比特币(BTC)。 如果您需要证明,请通过以下电子邮件与我们联系。 zipei12@protonmail.com', '1EHbFG5MEpzoVpstEdMAVFAwVdrfbcm4hR', 'zipei12@protonmail.com')打款是不可能转载 2020-12-29 14:37:54 · 3951 阅读 · 3 评论 -
用MySQL数据库的federated引擎 进行映射
关于跨数据库连表处理数据解决方案:使用federated引擎进行数据表映射1.查看federated引擎是否开启输入指令:show engines;federated如果有.但是为No.则是可以使用,但是未开启.需要开启.开启方法:在my.ini或者my.cof的[mysqld]下面添加federated重启数据库.再次查询.开启成功2.建立映射表. 映射表的字段需要和被映射表的字段相符,需要啥映射什么.CREATE TABLE FEDERATED_actor (转载 2020-10-23 16:50:39 · 179 阅读 · 0 评论 -
LAMP环境下放入项目
1,如果是项目迁移,得考虑数据库导入导出 注:数据导入时不会生成全新的数据库,需要先创建一个空数据库然后再导入数据2,项目上传时以压缩包的形式上传,防止内容部分没有上传成功。 shell>#unzipxxx.zip 执行上面的代码解压到当前目录3,TP框架下,Runtime文件需要授权777权限 shell>#chm...原创 2018-09-30 08:50:35 · 1188 阅读 · 1 评论 -
Linux下导入导出MySQL
导出数据库直接使用命令:mysqldump -u root -p abc >abc.sql然后回车输入密码就可以了;mysqldump -u 数据库链接用户名 -p 目标数据库 > 存储的文件名文件会导出到当前目录下导入数据库(sql文件)mysql -u 用户名 -p密码 数据库名 < 数据库名.sqlmysql -u root -p12345...原创 2018-09-30 08:49:19 · 97 阅读 · 0 评论 -
super-smack的使用
测试前准备:1)smack 文件是放在 /usr/share/smacks/目录下:select-key.smack和update-select.smack需要修改2个文件中和数据库相关地方2处需要修改:client "admin"{ user "test";//数据库用户名 host "127.0.0.1";//数据库IP db "test";//数据库 pass ...原创 2018-10-18 16:13:55 · 482 阅读 · 0 评论