Vin*_*ent 11 mysql sql database search database-design
以下哪个查询会更快,更优化(以及为什么):
SELECT * FROM items WHERE w = 320 AND h = 200 (w和h是INT)
SELECT * FROM items WHERE dimensions = '320x200'(尺寸为VARCHAR)
这是一些实际测量.(使用SQLite;稍后可以尝试使用MySQL.)
数据=随机顺序的所有1,000,000个w,h∈{1 ... 1000}的组合.
CREATE TABLE items (id INTEGER PRIMARY KEY, w INTEGER, h INTEGER)
执行的平均时间(20次运行)为SELECT * FROM items WHERE w = 320 and h = 2005.39±0.29μs.
CREATE TABLE items (id INTEGER PRIMARY KEY, dimensions TEXT)
平均执行时间为SELECT * FROM items WHERE dimensions = '320x200'5.69±0.23μs.
效率方面没有显着差异.
可用性方面存在巨大差异.例如,如果要计算矩形的面积和周长,则可以轻松实现双列方法:
SELECT w * h, 2 * (w + h) FROM items
尝试以其他方式编写相应的查询.
| 归档时间: |
|
| 查看次数: |
4193 次 |
| 最近记录: |