MySQL技巧(一)】的更多相关文章

Mysql技巧及问题目录: MySQL批量导入Excel.txt数据 MySQL批量导入Excel数据…
1.数据null时sum的用法 mysql数据库SUM(A+B)不一定等于SUM(A)+SUM(B),当A或B为NULL时,SUM(A+B)=NULL. 2.or改为in 同一字段,将or改写为in().OR效率:O(n);IN效率:O(Log n):当n很大时,OR会慢很多.注意控制in的个数,建议n小于200. 3. or和union的效率 (1)不同字段,将or改为union. (2)相同字段(针对单表操作) 对于索引列来最好使用union all,因复杂的查询[包含运算等]将使or.in…
    在工作过程中,时不时会有开发咨询几种select count()的区别,我总会告诉他们使用select count(*) 就好.下文我会展示几种sql的执行计划来说明为啥是这样.   1.测试环境 OS:Linux DB:mysql-5.5.18 table:innodb存储引擎   表定义如下:   2. 测试场景与分析[统计表group_message的记录数目] (1)select count(*)方式   (2)select count(1)方式   (3)select coun…
(转载)http://blog.zol.com.cn/2299/article_2298921.html MySQL 自4.1版以后开始支持INSERT … ON DUPLICATE KEY UPDATE语法,使得原本需要执行3条SQL语句(SELECT,INSERT,UPDATE),缩减为1条语句即可完成. 例如ipstats表结构如下: CREATE TABLE ipstats (ip VARCHAR(15) NOT NULL UNIQUE,clicks SMALLINT(5) UNSIGN…
先建一个表,便于后面讨论: CREATE TABLE `t_emp` ( `f_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', `f_emp_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '员工号', `f_emp_name` varchar(50) CHARACTER SET utf8mb4 COLLATE…
阅读本文大概需要 4 分钟. 来源:https://zhuanlan.zhihu.com/p/49888088 本文我们来谈谈项目中常用的 MySQL 优化方法,共 19 条,具体如下: 1.EXPLAIN 做 MySQL 优化,我们要善用 EXPLAIN 查看 SQL 执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我们要重点关注的数据: type 列,连接类型.一个好的 SQL 语句至少要达到 range 级别.杜绝出现 all 级别. key 列,使用到的索引名.如果没有选择索引…
哈希索引 哈希索引就是通过一个哈希函数计算出某个key的hash值,并以这个hash值去找到目标数据.例如:对于数据库的一行数据,对其主键进行hash运算,得到一个地址,这个地址指向这行记录的存储地址,key与hash值的对应关系就构成了哈希索引.根据某一列进行查询时,如果为这一列建立了哈希索引,那查询的速度是非常快的,只需对其进行一次hash运算即可直接得到地址拿到数据,时间复杂度为O(1). 但是众多MySQL存储引擎中,支持哈希索引的引擎却比较少,如Memory.NDB等.广泛使用的Inn…
order by条件: SELECT * FROM tablename WHERE id_one=27 OR id_two=27 ORDER BY CASE WHEN id_one=27 THEN timestamp_one END DESC, CASE WHEN id_two=27 THEN timestamp_two END DESC…
SELECT id,is_deleted,position,1/position as p,status FROM application.view_entry order by p desc;.//正序排序把0放到最后面…
1.按条件筛选,然后替换 select * from phome_ecms_tv where playurl like '%关键词%';update phome_ecms_tv set myorder=REPLACE(myorder,'99','444') 2.删除含某关键词的内容 delete from phome_ecms_tv where playurl like '%关键词%' (delete+like执行命令,当'%%'中的关键词为空时,会清空整个数据库)…