现在有个项目,对一些数据都附加一个删除标记,标记为1则表示已删除;标记为0则表示未删除。
假如说我要去从未删除的数据中查数据,怎么做能够提高效率(避免全表扫描)?
给这个标记列添加个索引之类的?
关系型数据库 数据库 数据库性能优化 数据库设计
select * from table1 where is_deleted = 1;
那别折腾了, 直接全表.
如果你的数据库支持 位图索引, 那么这个可能是你需要的, 具体看你的sql和数据分布.
如果你的查询大概是:
select * from table1 where is_deleted = 1 and column1 = 'xxx';
那么考虑在column1上的索引或者 (is_deleted, column1) 联合索引.
数据库垂直分表和水平分别到底什么意思?通俗点,谢谢
MySQL数据库应不应该拿掉所有的外键约束?
假设新浪微博里的微博数据条数有数亿了,请问新浪现在想查询浏览量最高的前10条数据,如何做?
在调试MySQL和性能测试时,有什么好方法批量添加假数据吗?
多角色系统中的数据库设计问题
在数据库设计中,当删除一条记录的时候,是加一个标记位还是直接删除这一行?
Instagram初期技术架构