我正在使用Firebase数据库来存储游戏的分数.一切正常,直到我决定实施"每周分数".
为了能够按分数过滤然后按周排序,我将数据存储在以下结构中:
game_scores-weekly
2018-01-29
user_id: { score, date, bla, bla bla}
user_id: { score, date, bla, bla bla}
user_id: { score, date, bla, bla bla}
2018-02-05
user_id: { score, date, bla, bla bla}
user_id: { score, date, bla, bla bla}
Run Code Online (Sandbox Code Playgroud)
所以,这个工作得很好,但是由于没有索引"game_scores-weekly/new_week"indexOn"得分",我每个新周都会因为性能问题而得到令人讨厌的警告.手动添加索引有效...直到下周,所以不是一个选项.
"game_scores-weekly": {
"2018-02-19": {
".indexOn": ["score", "uid"]
},
"2018-02-12": {
".indexOn": ["score", "uid"]
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在日期中以某种方式指定通配符,所以它适用于任何新的日期?或者我可以每周以编程方式创建新索引,还是有任何其他我可能没想过的解决方案?
另外,考虑手动创建一年中所有星期的列表并一次性添加它,但可能是一个限制?
最后,但并非最不重要的是,我只对目前的一周和上周的分数感兴趣,任何年龄较大的我都希望保留它以获得一些历史数据,但我不会在游戏中查询,所以可能会摆脱旧周的指数.
干杯!
<?php
namespace Raltech\WarehouseBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity
* @ORM\Table(name="warehouse_magazine")
*/
class Magazine
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $name;
/**
* @ORM\Column(type="text")
*/
protected $description;
/**
* @ORM\OneToMany(targetEntity="Wardrobe", mappedBy="magazine",cascade={"remove"})
*/
protected $wardrobe;
public function __construct()
{
$this->wardrobe = new ArrayCollection();
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param …Run Code Online (Sandbox Code Playgroud) 当我改变主题风格时
<style name="Theme.mystyle" parent="@style/Theme.AppCompat.Light">
Run Code Online (Sandbox Code Playgroud)
至
<style name="Theme.mystyle" parent="@style/Theme.AppCompat.Light.DarkActionBar">
Run Code Online (Sandbox Code Playgroud)
根本不工作.
<style name="PopupMenu.mystyle" parent="@style/Widget.AppCompat.Light.PopupMenu">
<item name="android:textStyle">bold</item>
<item name="android:popupBackground">@drawable/menu_dropdown_panel</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我正在使用ubuntu + nginx + php5-fpm + symfony2,最近我从文件切换到Memcached(php5-memcached)进行会话。从那以后,一段时间后,我开始收到500个响应代码错误。这是错误日志中的样子(打开流失败:打开太多):
"PHP message: PHP Warning: simplexml_load_file(.../vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/config/doctrine/User.orm.xml): failed to open stream: Too many open files in .../vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php on line 736
PHP message: PHP Warning: simplexml_load_file(): I/O warning : failed to load external entity ".../vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/config/doctrine/User.orm.xml" in .../vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php on line 736
PHP message: PHP Warning: include(.../vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php): failed to open stream: Too many open files in .../vendor/composer/ClassLoader.php on line 382
Run Code Online (Sandbox Code Playgroud)
经过一些研究,我发现它似乎与Memcached在会话中的使用有关:
这些是正在运行的php5-fpm进程:
ps aux | grep php
根3233 0.0 0.2 207464 16164 Ss Mar16 0:02 php-fpm:主进程(/etc/php5/fpm/php-fpm.conf)www-data …
我正在努力解决以下问题:我有两个MySQL服务器,配置为Master-Slave,但它们不在同一个内部网络上,因此有时会有明显的延迟,并且在写入后从slave读取,可能会导致不一致的问题.
我想知道是否有一种方法可以从从属设备中读取mysql,并且如果在从设备或其他解决方案上没有结果,则会以某种方式回退到从设备.
不确定是否可以完成,无论是应该在应用程序层还是在mysql级别.
当前的设置是带有mysqlnd扩展名的php5,并按照文档(在yaml上添加奴隶http://symfony.com/doc/current/reference/configuration/doctrine.html)我设法让应用程序从奴隶中读取并写在主人身上.