分类下相关文章
2018-08-27 · 阅读 10382
之前一直使用 Redis 的 GeoHash 来查询附近的目标,但是为了架构的简化,我决定尝试一下 MySQL 来进行查询。 SELECT name, latitude, longitude, SQRT( POW(69.1 * (latitude - [target_lat]), 2) + POW(69.1 * ([target_lng] - longitude) * COS(latitude / 57.3), 2)) AS distance FROM TableName HAVING distance < [distance] ORDER BY distance; ...
2018-08-07 · 阅读 27047
实际使用场景: 线上服务的数据库中某个字段已经创建了索引,但是后续运营过程中,发现这个索引并没有实际用途,反而影响了写入速度。那么,我们就会想去掉这个字段的索引。可是,在数据量非常大的情况下,新建索引,删除索引都是一件非常耗时的操作。所以,删除索引的操作,马虎不得。一旦发现这个索引还有其他业务用到,再重新建索引,耗时的创建过程会严重影响线上业务。 这时,index 的 visible 和 invisible 就非常实用了。可以先将该索引设置为 invisible,这样优化器就会忽略这个索引,但是索引依然存在于引擎内部。而设置 invisible 和 visible 操作的耗时又非常少,对业务基 ...
2018-06-10 · 阅读 18454
本质上就是实现了一套 MongoDB,然而我对 MongoDB 并不感冒。。。 什么是文档 Document A Document is a set of key and value pairs, as represented by a JSON object. 文档是一堆键值对的集合,表现为 JSON 结构。 例如: { "domain": "www.sunzhongwei.com", "title": "大象笔记" } collection 感觉类似 mongodb 里 collection 的概念, ...
2019-01-11 · 阅读 20825
尽量不要使用 Like 由于 MySQL LIKE '%text%' 是无法使用索引的,Like 能用上索引的唯一可能 LIKE 'text%' 所以实际使用中 LIKE 毫无实用价值。。。 mysql 5.7.6 之后支持了中日韩文的全文检索 查看了本机的 mysql 版本 mysqld --version mysqld Ver 5.7.18-0ubuntu0.16.10.1 for Linux on x86_64 ((Ubuntu)) A full-text index in MySQL is an index of type FULLTEXT. 实际上,就是增加了一个新的索 ...
2020-11-09 · 阅读 19123 · 字数 410
卸载之前安装的 mysql 5.7 sudo apt-get autoremove --purge mysql-server sudo apt-get remove mysql-server sudo apt-get autoremove mysql-server sudo apt-get remove mysql-common 安装 mysql 8.0 首先需要去 mysql 官网 https://dev.mysql.com/downloads/repo/apt/ 下载一个 Ubuntu / Debian (Architecture Independent), DEB Pack ...
2018-05-23 · 阅读 26309
ubuntu 18.04 上安装 mysql 5.7 之后,默认没有设置 root 密码,印象中之前是有一个引导界面的,现在似乎去掉了。 设置 mysql 初始密码需要使用命令 sudo mysql_secure_installation 按照提示,一步步操作即可 root 连接需要 sudo 很奇葩,ubuntu 18.04 上 mysql -uroot -p ERROR 1698 (28000): Access denied for user 'root'@'localhost' 永远会报这个错误。 解决方法就是加上 sudo... sudo mysql -uroot -p 带来的问 ...
2018-03-11 · 阅读 5742
周六花了一个小时支持了 MIP 网页,今天再接再厉将历史内容全部提交到熊掌号。 首先将数据库中的所有笔记的链接导出: SELECT CONCAT("https://www.sunzhongwei.com/mip/", slug) FROM articles order by id desc INTO OUTFILE '/tmp/urls.txt' 但是报错 ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this ...
2018-02-24 · 阅读 6492
例如,我想把数据表中的数据导出成可读的结果。 select `pay_status`, if(pay_status = 0, '未支付', '已支付') as pay_status from order 0 未支付 0 未支付 1 已支付 ...
2018-02-06 · 阅读 7399
table design: 表结构做成 id, key, value 还是 key, value 比较好。 按照 Bret Taylor 的分享,比较好的设计是 added_id -> INT NOT NULL AUTO_INCREMENT PRIMARY KEY id -> UNIQUE KEY updated -> KEY body -> json 之所以加上自增的 added_id, 是因为 Mysql InnoDB 是按照主键顺序在磁盘上顺序存储 数据的。这样就能保证新数据总是能写在旧数据的后面,因为新数据读取的频率总会高于 旧数据,磁头不会波动太大。 e. ...
2018-01-06 · 阅读 9439
crontab 配置 crontab 中添加 30 4 * * * /usr/bin/mysqldump -uuser db > /path/to/backups/db-`date +"\%Y_\%m_\%d_\%H"`.sql 即每天凌晨 4 点半进行自动备份 注意,这里不要加 -p 参数。 如何自动输入密码 不安全的方式是 直接在 crontab mysqldump 命令的参数中用 -p 指定密码,但是这样做有巨大的风险。 因为,任何用户都可以通过 ps axuw | grep mysqldump 看到进程的命令参数。 一种安全的方式是 在用户的根目录添加配置文 ...
2018-01-06 · 阅读 13651
昨天将博客启用了 HTTPS,发现一个包含 js 的 markdown 文章显示异常。 vuejs 中如何优雅的获取 Input 值 导致异常的原因是,https 页面引用了 http 的 js 文件,即 vuejs 的 cdn 链接使用了 http 的。 解决方法就是直接在 mysql 中进行替换 UPDATE articles SET content = REPLACE(content, "http", "https") where slug = 'how-to-get-input-value-in-vuejs'; 如果需要批量替换数据表中的 h ...
2018-01-02 · 阅读 12552
有朋友在博客评论里反馈,无法提交带 emoji 表情的评论。第一反应是数据库编码问题。 由于一直不习惯使用 emoji,所以这个问题一直没发现。 Laravel 的报错信息 production.ERROR: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8mb4_unicode_ci,COERCIBLE) for operation '=' MySQL CHARSET 与 COLLATE 的区别 https://stackoverflow. ...
2017-12-28 · 阅读 18350
场景 开发环境的一行配置(存于数据库中),我想导出到线上配置。 使用 Laravel Seeds 会导致全表被覆盖,所以只需要在线上插入一行。 两种方案: MySQl Workbench SELECT * FROM settings where id=10; 点击查询结果栏的按钮 “Export recordset to an external file“ 文件格式选择 SQL INSERT statements 即可。 复制到线上 MySQL 命令行执行即可。 MySQL 命令行 mysqldump -uxxx -p databasename tablename --where " ...
2017-10-30 · 阅读 7102
为了一时之快,将存储商品描述的字段由 text 变更成了 longtext。 结果,由于升级 summernote 版本,导致图片上传 cdn 的回调函数失效,新上传图片都被转换成了 base64 存储与描述字段中。每个商品至少有 10 张这种图片,一张图片大概1兆左右。原本如果使用 text 是可以规避这个问题的,因为 text 存储的内容大概为 65k,而 longtext 存储上限大概为 4G,所以默认的 php 内存上限被轻松超过。 2017/10/28 18:12:09 [error] 26887#26887: *839609 FastCGI sent in stderr: &qu ...
2018-01-26 · 阅读 13687
昨晚收到一堆微信小程序后台的报警邮件。但是邮件内容看不到,登录服务器查看 laravel 日志,发现是 summernote 保存的商品描述过长,超出了 TEXT 的长度限制 String data, rig ht truncated: 1406 Data too long for column 'description' at row 1 at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:107, PDOException(code: 22001): SQLSTATE[22001]: String data, ...
生活 | 跑步 清单 足球 鲁班 探索 孤独的美食家 驾驶 电视剧 收纳 奶爸 健康 game 电影 周末 joke |
---|---|
Geek | 健身 Laravel Git Vim MySQL Linux UI Windows SVN 纪录片 管理 Shell 游记 工具 手机 BackboneJS 自建博客 Mac DNS Tornado CDN Django Python AngularJS 理财 前端 Nginx 爬虫 Redis Javascript Browser 浏览器 推广 OAuth CSS PHP Social Networks 安全 运维 创业 杂记 VueJS Android Image IDE Java ReactJS 数据分析 SQLite RESTful 读书笔记 家电 ecshop Vagrant wordpress docker SEO GTD magento mongodb nodejs weex 冷知识 ruby iOS 微信小程序 AI CMS 快应用 backpack 广告联盟 OA 短信 UWP Win CSharp Tampermonkey graphviz 钉钉 WPS 数据字典 微信公众号 Fuchsia Adobe XD SQL Server thinkphp 代码规范 商业模式 Flutter 头痛的问题 serverless 视频制作 国际化 golang 服务器 Kotlin 网站建设 5G 笔记本 图片 spark spring 物联网 InfluxDB 图像识别 postgre rust 提示词 |
成长的烦恼 | 闲言碎语 待产 不睡觉 写作 程序员 孙心然语录 原则 大鸿语录 |
地球 | 植物 时间 中文 赚钱 国家地理 烟台 一生伏首拜阳明 emoji 弟子规 英文 国际贸易 |